]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/commitdiff
misc/fixshebangs.py
authorZooko O'Whielacronx <zooko@zooko.com>
Wed, 5 Nov 2008 01:01:30 +0000 (18:01 -0700)
committerZooko O'Whielacronx <zooko@zooko.com>
Wed, 5 Nov 2008 01:01:30 +0000 (18:01 -0700)
misc/fixshebangs.py [new file with mode: 0644]

diff --git a/misc/fixshebangs.py b/misc/fixshebangs.py
new file mode 100644 (file)
index 0000000..0244649
--- /dev/null
@@ -0,0 +1,30 @@
+#!/usr/bin/env python
+
+from allmydata.util import fileutil
+
+import re, shutil, sys
+
+R=re.compile("^#! */usr/bin/python *$")
+for fname in sys.argv[1:]:
+    inf = open(fname, "rU")
+    rntf = fileutil.ReopenableNamedTemporaryFile()
+    outf = open(rntf.name, "w")
+    first = True
+    for l in inf:
+        if first and R.search(l):
+            outf.write("#!/usr/bin/env python\n")
+        else:
+            outf.write(l)
+        first = False
+    outf.close()
+
+    try:
+        shutil.move(rntf.name, fname)
+    except EnvironmentError:
+        # Couldn't atomically overwrite, so just hope that this process doesn't die
+        # and the target file doesn't get recreated in between the following two
+        # operations:
+        shutil.move(fname, fname + ".bak")
+        shutil.move(rntf.name, fname)
+
+        fileutil.remove_if_possible(fname + ".bak")