blob: b00226120684fbe6fa336635bea1d101e7331749 [file] [log] [blame]
Benjamin Peterson90f5ba52010-03-11 22:53:45 +00001#!/usr/bin/env python3
Guido van Rossum1d974171992-12-09 23:14:40 +00002
Guido van Rossum499181a1996-11-27 19:43:49 +00003# Fix Python script(s) to reference the interpreter via /usr/bin/env python.
Guido van Rossumd68a4bd1999-04-09 14:56:35 +00004# Warning: this overwrites the file without making a backup.
Guido van Rossum1d974171992-12-09 23:14:40 +00005
6import sys
Guido van Rossumd68a4bd1999-04-09 14:56:35 +00007import re
Guido van Rossum1d974171992-12-09 23:14:40 +00008
9
10def main():
Andrew M. Kuchlingac6df952003-05-13 18:14:25 +000011 for filename in sys.argv[1:]:
Tim Peters70c43782001-01-17 08:48:39 +000012 try:
Andrew M. Kuchlingac6df952003-05-13 18:14:25 +000013 f = open(filename, 'r')
Guido van Rossumb940e112007-01-10 16:19:56 +000014 except IOError as msg:
Collin Winter6afaeb72007-08-03 17:06:41 +000015 print(filename, ': can\'t open :', msg)
Tim Peters70c43782001-01-17 08:48:39 +000016 continue
17 line = f.readline()
18 if not re.match('^#! */usr/local/bin/python', line):
Collin Winter6afaeb72007-08-03 17:06:41 +000019 print(filename, ': not a /usr/local/bin/python script')
Tim Peters70c43782001-01-17 08:48:39 +000020 f.close()
21 continue
22 rest = f.read()
23 f.close()
24 line = re.sub('/usr/local/bin/python',
25 '/usr/bin/env python', line)
Collin Winter6afaeb72007-08-03 17:06:41 +000026 print(filename, ':', repr(line))
Andrew M. Kuchlingac6df952003-05-13 18:14:25 +000027 f = open(filename, "w")
Tim Peters70c43782001-01-17 08:48:39 +000028 f.write(line)
29 f.write(rest)
30 f.close()
Guido van Rossum1d974171992-12-09 23:14:40 +000031
Andrew M. Kuchlinge236b382004-08-09 17:27:55 +000032if __name__ == '__main__':
33 main()