blob: 725300e56a27db4a7a413b11cd074210c51881eb [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
Serhiy Storchaka172bb392019-03-30 08:33:02 +020017 with f:
18 line = f.readline()
19 if not re.match('^#! */usr/local/bin/python', line):
20 print(filename, ': not a /usr/local/bin/python script')
21 continue
22 rest = f.read()
Tim Peters70c43782001-01-17 08:48:39 +000023 line = re.sub('/usr/local/bin/python',
24 '/usr/bin/env python', line)
Collin Winter6afaeb72007-08-03 17:06:41 +000025 print(filename, ':', repr(line))
Serhiy Storchaka172bb392019-03-30 08:33:02 +020026 with open(filename, "w") as f:
27 f.write(line)
28 f.write(rest)
Guido van Rossum1d974171992-12-09 23:14:40 +000029
Andrew M. Kuchlinge236b382004-08-09 17:27:55 +000030if __name__ == '__main__':
31 main()