Port hb-manifest-update to Python
diff --git a/test/shaping/hb_test_tools.py b/test/shaping/hb_test_tools.py
index 42b8bac..67d817e 100644
--- a/test/shaping/hb_test_tools.py
+++ b/test/shaping/hb_test_tools.py
@@ -86,7 +86,7 @@
sys.stdout.writelines (["-", colors.green, l1, colors.end])
except IOError as e:
if e.errno != errno.EPIPE:
- print >> sys.stderr, "%s: %s" (sys.argv[0], e.strerror)
+ print >> sys.stderr, "%s: %s: %s" % (sys.argv[0], e.filename, e.strerror)
sys.exit (1)
@@ -122,7 +122,7 @@
callback (FileHelpers.open_file_or_stdin (s))
except IOError as e:
if e.errno != errno.EPIPE:
- print >> sys.stderr, "%s: %s" (sys.argv[0], e.strerror)
+ print >> sys.stderr, "%s: %s: %s" % (sys.argv[0], e.filename, e.strerror)
sys.exit (1)
@staticmethod
@@ -137,7 +137,7 @@
callback (s)
except IOError as e:
if e.errno != errno.EPIPE:
- print >> sys.stderr, "%s: %s" (sys.argv[0], e.strerror)
+ print >> sys.stderr, "%s: %s: %s" % (sys.argv[0], e.filename, e.strerror)
sys.exit (1)
@staticmethod
@@ -165,7 +165,7 @@
print separator.join (callback (x) for x in (args))
except IOError as e:
if e.errno != errno.EPIPE:
- print >> sys.stderr, "%s: %s" (sys.argv[0], e.strerror)
+ print >> sys.stderr, "%s: %s: %s" % (sys.argv[0], e.filename, e.strerror)
sys.exit (1)
@@ -240,21 +240,43 @@
if os.path.isdir (s):
- if s[-1] != '/':
- s += "/"
+ if s[-1] in '/\\':
+ s = s[:-1]
try:
- m = file (s + "/MANIFEST")
+ m = file (os.path.join (s, "MANIFEST"))
items = [x.strip () for x in m.readlines ()]
for f in items:
Manifest.print_to_stdout (s + f)
except IOError:
if strict:
- print >> sys.stderr, "%s: %s does not exist" (sys.argv[0], s + "/MANIFEST")
+ print >> sys.stderr, "%s: %s does not exist" (sys.argv[0], os.path.join (s, "MANIFEST"))
sys.exit (1)
return
else:
print s
+ @staticmethod
+ def update_recursive (s):
+
+ for dirpath, dirnames, filenames in os.walk (s, followlinks=True):
+
+ for f in ["MANIFEST", "README", "LICENSE", "COPYING", "AUTHORS", "SOURCES"]:
+ if f in dirnames:
+ dirnames.remove (f)
+ if f in filenames:
+ filenames.remove (f)
+ dirnames.sort ()
+ filenames.sort ()
+ ms = os.path.join (dirpath, "MANIFEST")
+ print " GEN %s" % ms
+ m = open (ms, "w")
+ for f in filenames:
+ print >> m, f
+ for f in dirnames:
+ print >> m, f
+ for f in dirnames:
+ Manifest.update_recursive (os.path.join (dirpath, f))
+
if __name__ == '__main__':
pass