annotate scripts/source_format.py @ 8910:2a57d3660003 stable

git: show warning when removing existing unused Kallithea hook These hooks are no longer used and should be removed, but it is nice to have explicit logging when it happens.
author Mads Kiilerich <mads@kiilerich.com>
date Thu, 10 Jun 2021 14:20:08 +0200
parents f8971422795e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8771
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
1 #!/usr/bin/env python3
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
2
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
3 # hg files 'set:!binary()&grep("^#!.*python")' 'set:**.py' | xargs scripts/source_format.py
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
4
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
5 import re
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
6 import sys
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
7
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
8
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
9 filenames = sys.argv[1:]
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
10
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
11 for fn in filenames:
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
12 with open(fn) as f:
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
13 org_content = f.read()
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
14
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
15 mod_name = fn[:-3] if fn.endswith('.py') else fn
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
16 mod_name = mod_name[:-9] if mod_name.endswith('/__init__') else mod_name
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
17 mod_name = mod_name.replace('/', '.')
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
18 def f(m):
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
19 return '"""\n%s\n%s\n' % (mod_name, '~' * len(mod_name))
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
20 new_content = re.sub(r'^"""\n(kallithea\..*\n)(~+\n)?', f, org_content, count=1, flags=re.MULTILINE)
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
21
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
22 if new_content != org_content:
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
23 with open(fn, 'w') as f:
f8971422795e scripts: introduce source_format.py to fix up the module name in file headers
Mads Kiilerich <mads@kiilerich.com>
parents:
diff changeset
24 f.write(new_content)