correct the fixpath.py script to work in Python 3 #6999

This commit is contained in:
Benjamin Peterson 2009-09-25 20:56:52 +00:00
parent 8fb00bef27
commit 9abfc457e0
1 changed files with 10 additions and 9 deletions

View File

@ -1,4 +1,4 @@
#! /usr/bin/env python
#!/usr/bin/env python3
# Change the #! line occurring in Python scripts. The new interpreter
# pathname must be given with a -i option.
@ -43,8 +43,9 @@ def main():
sys.exit(2)
for o, a in opts:
if o == '-i':
new_interpreter = a
if not new_interpreter or new_interpreter[0] != '/' or not args:
new_interpreter = a.encode()
if not new_interpreter or not new_interpreter.startswith(b'/') or \
not args:
err('-i option or file-or-directory missing\n')
err(usage)
sys.exit(2)
@ -61,7 +62,7 @@ def main():
ispythonprog = re.compile('^[a-zA-Z0-9_]+\.py$')
def ispython(name):
return ispythonprog.match(name) >= 0
return bool(ispythonprog.match(name))
def recursedown(dirname):
dbg('recursedown(%r)\n' % (dirname,))
@ -88,7 +89,7 @@ def recursedown(dirname):
def fix(filename):
## dbg('fix(%r)\n' % (filename,))
try:
f = open(filename, 'r')
f = open(filename, 'rb')
except IOError as msg:
err('%s: cannot open: %r\n' % (filename, msg))
return 1
@ -101,7 +102,7 @@ def fix(filename):
head, tail = os.path.split(filename)
tempname = os.path.join(head, '@' + tail)
try:
g = open(tempname, 'w')
g = open(tempname, 'wb')
except IOError as msg:
f.close()
err('%s: cannot create: %r\n' % (tempname, msg))
@ -139,11 +140,11 @@ def fix(filename):
return 0
def fixline(line):
if not line.startswith('#!'):
if not line.startswith(b'#!'):
return line
if "python" not in line:
if b"python" not in line:
return line
return '#! %s\n' % new_interpreter
return b'#! ' + new_interpreter + b'\n'
if __name__ == '__main__':
main()