tahoe-lafs/misc/coding_tools/fixshebangs.py

31 lines
858 B
Python
Raw Normal View History

2008-11-05 01:01:30 +00:00
#!/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")