X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=cmd%2Ffsck-cmd.py;h=8fc4f7f303bccb16f8ffe55ee350db2cbd29d641;hb=24208d7a7cd30b9b5e2838a96b79c36e3f746b1d;hp=4d44dc73cdbc864d020f47f556ffb702b30199df;hpb=80a4dc6da8bba591bbef0c1ecd07977b9cda9917;p=bup.git diff --git a/cmd/fsck-cmd.py b/cmd/fsck-cmd.py index 4d44dc7..8fc4f7f 100755 --- a/cmd/fsck-cmd.py +++ b/cmd/fsck-cmd.py @@ -1,7 +1,15 @@ -#!/usr/bin/env python +#!/bin/sh +"""": # -*-python-*- +bup_python="$(dirname "$0")/bup-python" || exit $? +exec "$bup_python" "$0" ${1+"$@"} +""" +# end of bup preamble + +from __future__ import absolute_import, print_function import sys, os, glob, subprocess + from bup import options, git -from bup.helpers import * +from bup.helpers import Sha1, chunkyreader, istty2, log, progress par2_ok = 0 nullf = open('/dev/null') @@ -44,14 +52,14 @@ def parv(lvl): return ['-qq'] def par2_generate(base): - return run(['par2', 'create', '-n1', '-c200'] + parv(2) + return run(['par2', 'create', '-t1', '-n1', '-c200'] + parv(2) + ['--', base, base+'.pack', base+'.idx']) def par2_verify(base): - return run(['par2', 'verify'] + parv(3) + ['--', base]) + return run(['par2', 'verify', '-t1'] + parv(3) + ['--', base]) def par2_repair(base): - return run(['par2', 'repair'] + parv(2) + ['--', base]) + return run(['par2', 'repair', '-t1'] + parv(2) + ['--', base]) def quick_verify(base): f = open(base + '.pack', 'rb') @@ -71,15 +79,15 @@ def git_verify(base): if opt.quick: try: quick_verify(base) - except Exception, e: - debug('error: %s\n' % e) + except Exception as e: + log('error: %s\n' % e) return 1 return 0 else: return run(['git', 'verify-pack', '--', base]) -def do_pack(base, last): +def do_pack(base, last, par2_exists): code = 0 if par2_ok and par2_exists and (opt.repair or not opt.generate): vresult = par2_verify(base) @@ -119,12 +127,9 @@ def do_pack(base, last): action_result = 'ok' else: assert(opt.generate and (not par2_ok or par2_exists)) - if par2_ok: - action_result = 'exists' - else: - action_result = 'skipped' + action_result = 'exists' if par2_exists else 'skipped' if opt.verbose: - print last, action_result + print(last, action_result) return code @@ -182,7 +187,7 @@ for name in extra: progress('fsck (%d/%d)\r' % (count, len(extra))) if not opt.jobs: - nc = do_pack(base, last) + nc = do_pack(base, last, par2_exists) code = code or nc count += 1 else: @@ -198,8 +203,8 @@ for name in extra: outstanding[pid] = 1 else: # child try: - sys.exit(do_pack(base, last)) - except Exception, e: + sys.exit(do_pack(base, last, par2_exists)) + except Exception as e: log('exception: %r\n' % e) sys.exit(99)