]> git.donarmstrong.com Git - lilypond.git/blobdiff - stepmake/bin/package-diff.py
release: 1.3.7
[lilypond.git] / stepmake / bin / package-diff.py
index 3fc89f375fc4c0c287c96922079715fdccc195b9..b1fe324985e0d8963afcdbda1965a1d14fc11c34 100644 (file)
@@ -1,5 +1,9 @@
 #!@PYTHON@
 
+#
+# TODO: CLEAN THIS UP.
+#
+
 
 import find
 import sys
@@ -52,9 +56,23 @@ def help ():
                '  -T, --dir-to=TO      diff to directory TO\n'  
                )
 
+def cleanup ():
+       global from_diff, to_diff, prev_cwd
+       os.chdir ('/tmp/package-diff')
+       sys.stderr.write ('Cleaning ... ')
+       os.system ('rm -fr %s %s' % (from_diff, to_diff))
+       sys.stderr.write ('\n')
+       os.chdir (prev_cwd)
+
 def untar (fn):
        # os.system ('pwd');
-       sys.stderr.write ('untarring ' + fn + '\n')
+       try:
+               open (fn)
+       except:
+               sys.stderr.write ("Can't find tarball: %s\n" % fn)
+               cleanup ()
+               sys.exit (1)
+       sys.stderr.write ("Untarring: %s\n" % fn)
        os.system ('gzip --quiet -dc ' + fn + '| tar xf - ')
        sys.stderr.flush ()
 
@@ -62,8 +80,13 @@ def remove_automatic (dirnames):
        files = []
 
        for d in dirnames:
-               for p in pats:
-                       files = files + find.find (p, d)
+               try:
+                       for p in pats:
+                               files = files + find.find (p, d)
+               except:
+                       sys.stderr.write ("Can't find dir: %s\n" % d)
+                       cleanup ()
+                       sys.exit (1)
 
        dirs = map (lambda d: find.find ('out', d), dirnames)
        dirs = reduce (lambda x,y:  x + y, dirs)
@@ -115,7 +138,9 @@ usage
 
 Patches do not contain automatically generated files 
 or (urg) empty directories, 
-i.e., you should rerun autoconf, configure """
+i.e., you should rerun autoconf, configure
+
+"""
 
 
 def makediff (fromdir, todir, patch_name):
@@ -271,10 +296,5 @@ else:
 os.chdir (to_diff)
 makediff (from_diff, to_diff, patch_name) 
 
-os.chdir ('/tmp/package-diff')
-sys.stderr.write ('cleaning ... ')
-os.system ('rm -fr %s %s' % (from_diff, to_diff))
-sys.stderr.write ('\n')
-os.chdir (prev_cwd)
-
+cleanup ()