# for encoding encryption parameters in the file extensions (“.aes128” and
# suchlike).
PDTCRYPT_EXTENSION = "pdtcrypt"
+PDT_TYPE_ARCHIVE = 0
+PDT_TYPE_AUX = 1
AUXILIARY_FILE_INDEX = 0
AUXILIARY_FILE_INFO = 1
'|gz': '.gz',
'|bz2': '.bz2',
'#gz': '.gz',
- '#gz.aes128': '.gz.%s' % PDTCRYPT_EXTENSION,
- '#aes128': '.%s' % PDTCRYPT_EXTENSION,
+ '#gz.aes128': '.gz',
+ '#aes128': '',
}
# valid index modes and their corresponding default file extension
'': '',
'gz': '.gz',
'bz2': '.bz2',
- 'gz.aes128': '.gz.%s' % PDTCRYPT_EXTENSION,
- 'aes128': '.%s' % PDTCRYPT_EXTENSION,
+ 'gz.aes128': '.gz',
+ 'aes128': '',
}
# valid path prefixes
if volume_name_func is not None:
self.volume_name_func = volume_name_func
+ def pick_extension(self, kind, mode):
+ """
+ Choose the extension depending on a) the kind of file given, b) the
+ processing mode, and c) the current encryption settings.
+ """
+ ret = ""
+ if kind == PDT_TYPE_ARCHIVE:
+ ret += ".tar"
+ ret += mode
+ if self.crypto_ctx is not None:
+ ret += "." + PDTCRYPT_EXTENSION
+ return ret
+
def index_name_func(self, is_full): # pylint: disable=method-hidden
'''
function that sets a custom name for the index file. This function
'''
prefix = "bfull" if is_full else "bdiff"
date_str = self.current_time.strftime("%Y-%m-%d-%H%M")
- extension = self.__index_extensions_dict[self.index_mode]
+ extension = self.pick_extension \
+ (PDT_TYPE_AUX,
+ self.__index_extensions_dict [self.index_mode])
return "%s-%s.index%s" % (prefix, date_str, extension)
- def get_index_extension(self):
- '''
- returns the extension used for index files
- '''
- return self.__index_extensions_dict[self.index_mode]
-
def volume_name_func(self, backup_path, # pylint: disable=method-hidden
is_full, volume_number,
guess_name=False):
to be found, and thus the date will be guessed.
'''
prefix = "bfull" if is_full else "bdiff"
- extension = self.__file_extensions_dict[self.mode]
+ extension = self.pick_extension \
+ (PDT_TYPE_ARCHIVE,
+ self.__file_extensions_dict [self.mode])
if not guess_name:
date_str = self.current_time.strftime("%Y-%m-%d-%H%M")
- return "%s-%s-%03d.tar%s" % (prefix, date_str, volume_number + 1, extension)
+ return "%s-%s-%03d%s" % (prefix, date_str, volume_number + 1, extension)
else:
prefix = prefix + "-"
postfix = "-%03d.tar%s" % (volume_number + 1, extension)