]> git.donarmstrong.com Git - lilypond.git/blobdiff - stepmake/bin/package-diff.py
patch::: 1.3.59.uu2.jcn1
[lilypond.git] / stepmake / bin / package-diff.py
index 72481671147dd5c594a9c41225b735cf7811c03a..98fcbfe64b8a530b059c292575b36f5400f6c8e2 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,11 +138,12 @@ 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):
 
+def makediff (fromdir, todir, patch_name):
        # urg, again?
        from packagepython import *
 
@@ -137,7 +161,7 @@ def makediff (fromdir, todir, patch_name):
                toname = os.path.basename (toname)
                fromdir = '../' + fromname
 
-       f = open (patch_name, 'w')
+       f = open (patch_name, 'wb')
        f.write (header %
                (mailaddress (),   fromname, toname, 
                 flags.package.name, os.path.basename (patch_name)))
@@ -233,12 +257,13 @@ if to_diff == from_diff:
        elif to_src:
              to_diff = to_diff + '.src'
        else:
-             sys.stderr.write (name + ': nothing to do: to == from == ' + from_diff + '\n')
+             sys.stderr.write (patch_name + ': nothing to do: to == from = ' + from_diff + '\n')
              sys.exit (1)
 
 if not patch_name:
        pn = to_diff + '.diff'
-       patch_name =  os.path.join (os.getcwd (), pn)
+       patch_name =  os.path.join (os.getcwd (), 'out')
+       patch_name =  os.path.join (patch_name, pn)
 
 from_diff = '/tmp/package-diff/' + from_diff
 to_diff =  '/tmp/package-diff/' + to_diff
@@ -271,9 +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 ()