fix_shebang.py 535 Bytes
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
"""
Change "#!" line to "#!/usr/bin/env python" for all files in directory sys.argv[1].
"""

from pathlib import Path
import sys

if sys.platform == 'win32':
    exit()

for file in Path(sys.argv[1]).iterdir():
    try:
        text = file.read_text()
        assert text.startswith('#!'), 'no shebang'
        shebang, content = text.split('\n', 1)
        assert 'python' in shebang, 'not python script'
        file.write_text('#!/usr/bin/env python\n' + content)
    except Exception as e:
        print(f'Skip {file}: {repr(e)}')