blob: 2ff15f41efddb65417ae800f36532072511ca118 [file] [log] [blame]
Guido van Rossumd68a4bd1999-04-09 14:56:35 +00001#!/usr/bin/env python
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')
Tim Peters70c43782001-01-17 08:48:39 +000014 except IOError, msg:
Andrew M. Kuchlingac6df952003-05-13 18:14:25 +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):
Andrew M. Kuchlingac6df952003-05-13 18:14:25 +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)
Walter Dörwald70a6b492004-02-12 17:35:32 +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()