mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-25 07:31:07 +00:00
1fc6be28f4
This is for ticket #1068.
31 lines
858 B
Python
31 lines
858 B
Python
#!/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")
|