def DirDelta(path_iter, dirsig_fileobj_list): """ Produce tarblock diff given dirsig_fileobj_list and pathiter dirsig_fileobj_list should either be a tar fileobj or a list of those, sorted so the most recent is last. """ global stats stats = statistics.StatsDeltaProcess() if type(dirsig_fileobj_list) is types.ListType: sig_iter = combine_path_iters(map(sigtar2path_iter, dirsig_fileobj_list)) else: sig_iter = sigtar2path_iter(dirsig_fileobj_list) delta_iter = get_delta_iter(path_iter, sig_iter) if globals.dry_run: return DummyBlockIter(delta_iter) else: return DeltaTarBlockIter(delta_iter)
def DirDelta(path_iter, dirsig_fileobj_list): """ Produce tarblock diff given dirsig_fileobj_list and pathiter dirsig_fileobj_list should either be a tar fileobj or a list of those, sorted so the most recent is last. """ global stats stats = statistics.StatsDeltaProcess() if isinstance(dirsig_fileobj_list, types.ListType): sig_iter = combine_path_iters([sigtar2path_iter(x) for x in dirsig_fileobj_list]) else: sig_iter = sigtar2path_iter(dirsig_fileobj_list) delta_iter = get_delta_iter(path_iter, sig_iter) if globals.dry_run or (globals.progress and not progress.tracker.has_collected_evidence()): return DummyBlockIter(delta_iter) else: return DeltaTarBlockIter(delta_iter)
def DirDelta_WriteSig(path_iter, sig_infp_list, newsig_outfp): """ Like DirDelta but also write signature into sig_fileobj Like DirDelta, sig_infp_list can be a tar fileobj or a sorted list of those. A signature will only be written to newsig_outfp if it is different from (the combined) sig_infp_list. """ global stats stats = statistics.StatsDeltaProcess() if type(sig_infp_list) is types.ListType: sig_path_iter = get_combined_path_iter(sig_infp_list) else: sig_path_iter = sigtar2path_iter(sig_infp_list) delta_iter = get_delta_iter(path_iter, sig_path_iter, newsig_outfp) if globals.dry_run: return DummyBlockIter(delta_iter) else: return DeltaTarBlockIter(delta_iter)
def DirDelta_WriteSig(path_iter, sig_infp_list, newsig_outfp): """ Like DirDelta but also write signature into sig_fileobj Like DirDelta, sig_infp_list can be a tar fileobj or a sorted list of those. A signature will only be written to newsig_outfp if it is different from (the combined) sig_infp_list. """ global stats stats = statistics.StatsDeltaProcess() if isinstance(sig_infp_list, list): sig_path_iter = get_combined_path_iter(sig_infp_list) else: sig_path_iter = sigtar2path_iter(sig_infp_list) delta_iter = get_delta_iter(path_iter, sig_path_iter, newsig_outfp) if globals.dry_run or (globals.progress and not progress.tracker.has_collected_evidence()): return DummyBlockIter(delta_iter) else: return DeltaTarBlockIter(delta_iter)