Guido van Rossum | d68a4bd | 1999-04-09 14:56:35 +0000 | [diff] [blame] | 1 | #!/usr/bin/env python |
Guido van Rossum | 1d97417 | 1992-12-09 23:14:40 +0000 | [diff] [blame] | 2 | |
Guido van Rossum | 499181a | 1996-11-27 19:43:49 +0000 | [diff] [blame] | 3 | # Fix Python script(s) to reference the interpreter via /usr/bin/env python. |
Guido van Rossum | d68a4bd | 1999-04-09 14:56:35 +0000 | [diff] [blame] | 4 | # Warning: this overwrites the file without making a backup. |
Guido van Rossum | 1d97417 | 1992-12-09 23:14:40 +0000 | [diff] [blame] | 5 | |
| 6 | import sys |
Guido van Rossum | d68a4bd | 1999-04-09 14:56:35 +0000 | [diff] [blame] | 7 | import re |
Guido van Rossum | 1d97417 | 1992-12-09 23:14:40 +0000 | [diff] [blame] | 8 | |
| 9 | |
| 10 | def main(): |
Andrew M. Kuchling | ac6df95 | 2003-05-13 18:14:25 +0000 | [diff] [blame] | 11 | for filename in sys.argv[1:]: |
Tim Peters | 70c4378 | 2001-01-17 08:48:39 +0000 | [diff] [blame] | 12 | try: |
Andrew M. Kuchling | ac6df95 | 2003-05-13 18:14:25 +0000 | [diff] [blame] | 13 | f = open(filename, 'r') |
Guido van Rossum | b940e11 | 2007-01-10 16:19:56 +0000 | [diff] [blame] | 14 | except IOError as msg: |
Collin Winter | 6afaeb7 | 2007-08-03 17:06:41 +0000 | [diff] [blame] | 15 | print(filename, ': can\'t open :', msg) |
Tim Peters | 70c4378 | 2001-01-17 08:48:39 +0000 | [diff] [blame] | 16 | continue |
| 17 | line = f.readline() |
| 18 | if not re.match('^#! */usr/local/bin/python', line): |
Collin Winter | 6afaeb7 | 2007-08-03 17:06:41 +0000 | [diff] [blame] | 19 | print(filename, ': not a /usr/local/bin/python script') |
Tim Peters | 70c4378 | 2001-01-17 08:48:39 +0000 | [diff] [blame] | 20 | 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 Winter | 6afaeb7 | 2007-08-03 17:06:41 +0000 | [diff] [blame] | 26 | print(filename, ':', repr(line)) |
Andrew M. Kuchling | ac6df95 | 2003-05-13 18:14:25 +0000 | [diff] [blame] | 27 | f = open(filename, "w") |
Tim Peters | 70c4378 | 2001-01-17 08:48:39 +0000 | [diff] [blame] | 28 | f.write(line) |
| 29 | f.write(rest) |
| 30 | f.close() |
Guido van Rossum | 1d97417 | 1992-12-09 23:14:40 +0000 | [diff] [blame] | 31 | |
Andrew M. Kuchling | e236b38 | 2004-08-09 17:27:55 +0000 | [diff] [blame] | 32 | if __name__ == '__main__': |
| 33 | main() |