From: Zooko O'Whielacronx Date: Wed, 5 Nov 2008 01:01:30 +0000 (-0700) Subject: misc/fixshebangs.py X-Git-Url: https://git.rkrishnan.org/vdrive/%22news.html//%22%22.?a=commitdiff_plain;h=24650490ed27bdcfd28b817d1f3567ea08724872;p=tahoe-lafs%2Ftahoe-lafs.git misc/fixshebangs.py --- diff --git a/misc/fixshebangs.py b/misc/fixshebangs.py new file mode 100644 index 00000000..02446490 --- /dev/null +++ b/misc/fixshebangs.py @@ -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")