def parse_tmp_dir(directory): directory = directory + '/tmp~' if not os.path.exists(directory): return [] d = Dir(directory) tmp_files = [] for root, dirs, files in d.walk(): for file in files: tmp_files.append((root, file, os.stat(root + '/' + file).st_size, get_file_sha256_hash(root + '/' + file))) return tmp_files
def process_restore_folder(self): restoredir = self.clientdir + '/restore~' d = Dir(restoredir) for root, dirs, files in d.walk(): for file in files: if file in self.file_dict: if not os.path.exists(os.path.dirname(self.clientdir + '/' + self.file_dict[file])): os.makedirs(os.path.dirname(self.clientdir + '/' + self.file_dict[file])) decrypt_file(self.key, root + '/' + file, self.clientdir + '/' + self.file_dict[file]) os.unlink(root + '/' + file)
def parse_existing_clientdir(pwd, directory): file_dict = {} curdir = os.getcwd() d = Dir(directory) for root, dirs, files in d.walk(): for fileName in files: if fileName[-1] == '~' or root[-1] == '~': continue else: relFile = root[len(curdir) + 1:] + '/' + fileName file_dict[hashlib.sha256(pwd + relFile).hexdigest()] = relFile return file_dict
def parse_new_dir(directory, pwd, key): file_dict = {} curdir = os.getcwd() if not os.path.exists(directory + '/tmp~'): os.makedirs(directory + '/tmp~') d = Dir(directory) for root, dirs, files in d.walk(): for file in files: if file[-1] == '~' or root[-1] == '~': continue else: original_file = root + '/' + file new_file = hashlib.sha256(pwd + root[len(curdir) + 1:] + '/' + file).hexdigest() encrypt_file(key, original_file, directory + '/tmp~/' + new_file) file_dict[new_file] = original_file return file_dict