]> arthur.barton.de Git - bup.git/blobdiff - cmd/fsck-cmd.py
Streamline output: Exception messages
[bup.git] / cmd / fsck-cmd.py
index 44decd894e7983d4f20438ec59ecef61f0c4cb54..cf982aa3e49fd63f07f2fc3e1116a3ee22979866 100755 (executable)
@@ -7,7 +7,7 @@ par2_ok = 0
 nullf = open('/dev/null')
 
 def debug(s):
-    if opt.verbose:
+    if opt.verbose > 1:
         log(s)
 
 def run(argv):
@@ -30,13 +30,13 @@ def par2_setup():
                              stdout=nullf, stderr=nullf, stdin=nullf)
         rv = p.wait()
     except OSError:
-        log('fsck: warning: par2 not found; disabling recovery features.\n')
+        log('fsck: Warning: "par2" not found; disabling recovery features!')
     else:
         par2_ok = 1
 
 def parv(lvl):
     if opt.verbose >= lvl:
-        if istty:
+        if istty2:
             return []
         else:
             return ['-q']
@@ -63,23 +63,23 @@ def quick_verify(base):
     for b in chunkyreader(f, os.fstat(f.fileno()).st_size - 20):
         sum.update(b)
     if sum.digest() != wantsum:
-        raise ValueError('expected %r, got %r' % (wantsum.encode('hex'),
+        raise ValueError('Expected %r, got %r' % (wantsum.encode('hex'),
                                                   sum.hexdigest()))
-        
+
 
 def git_verify(base):
     if opt.quick:
         try:
             quick_verify(base)
         except Exception, e:
-            debug('error: %s\n' % e)
+            debug('Error: %s!' % 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)
@@ -87,34 +87,41 @@ def do_pack(base, last):
             if opt.repair:
                 rresult = par2_repair(base)
                 if rresult != 0:
-                    print '%s par2 repair: failed (%d)' % (last, rresult)
+                    action_result = 'failed'
+                    log('%s par2 repair: Failed (%d)!' % (last, rresult))
                     code = rresult
                 else:
-                    print '%s par2 repair: succeeded (0)' % last
+                    action_result = 'repaired'
+                    log('%s par2 repair: Succeeded (0).' % last)
                     code = 100
             else:
-                print '%s par2 verify: failed (%d)' % (last, vresult)
+                action_result = 'failed'
+                log('%s par2 verify: Failed (%d)!' % (last, vresult))
                 code = vresult
         else:
-            print '%s ok' % last
+            action_result = 'ok'
     elif not opt.generate or (par2_ok and not par2_exists):
         gresult = git_verify(base)
         if gresult != 0:
-            print '%s git verify: failed (%d)' % (last, gresult)
+            action_result = 'failed'
+            log('%s Git verify: Failed (%d)!' % (last, gresult))
             code = gresult
         else:
             if par2_ok and opt.generate:
                 presult = par2_generate(base)
                 if presult != 0:
-                    print '%s par2 create: failed (%d)' % (last, presult)
+                    action_result = 'failed'
+                    log('%s par2 create: Failed (%d)!' % (last, presult))
                     code = presult
                 else:
-                    print '%s ok' % last
+                    action_result = 'generated'
             else:
-                print '%s ok' % last
+                action_result = 'ok'
     else:
         assert(opt.generate and (not par2_ok or par2_exists))
-        debug('    skipped: par2 file already generated.\n')
+        action_result = 'exists' if par2_exists else 'skipped'
+    if opt.verbose:
+        print last, action_result
     return code
 
 
@@ -144,7 +151,7 @@ if opt.disable_par2:
 git.check_repo_or_die()
 
 if not extra:
-    debug('fsck: No filenames given: checking all packs.\n')
+    debug('fsck: No filenames given: checking all packs.')
     extra = glob.glob(git.repo('objects/pack/*.pack'))
 
 code = 0
@@ -166,13 +173,13 @@ for name in extra:
     if par2_exists and os.stat(base + '.par2').st_size == 0:
         par2_exists = 0
     sys.stdout.flush()
-    debug('fsck: checking %s (%s)\n' 
+    debug('fsck: Checking %s (%s) ...'
           % (last, par2_ok and par2_exists and 'par2' or 'git'))
     if not opt.verbose:
-        progress('fsck (%d/%d)\r' % (count, len(extra)))
-    
+        progress_update('fsck (%d/%d) ...' % (count + 1, 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:
@@ -188,9 +195,9 @@ for name in extra:
             outstanding[pid] = 1
         else: # child
             try:
-                sys.exit(do_pack(base, last))
+                sys.exit(do_pack(base, last, par2_exists))
             except Exception, e:
-                log('exception: %r\n' % e)
+                log('Exception: %r' % e)
                 sys.exit(99)
                 
 while len(outstanding):
@@ -201,8 +208,7 @@ while len(outstanding):
         code = code or nc
         count += 1
     if not opt.verbose:
-        progress('fsck (%d/%d)\r' % (count, len(extra)))
+        progress_update('fsck (%d/%d) ...' % (count + 1, len(extra)))
 
-if not opt.verbose and istty:
-    log('fsck done.           \n')
+progress_end('fsck done.')
 sys.exit(code)