]> arthur.barton.de Git - bup.git/blobdiff - cmd/fsck-cmd.py
fsck: disable par2's internal concurrency
[bup.git] / cmd / fsck-cmd.py
index 4d44dc73cdbc864d020f47f556ffb702b30199df..8fc4f7f303bccb16f8ffe55ee350db2cbd29d641 100755 (executable)
@@ -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)