Mercurial > kallithea
annotate scripts/source_format.py @ 8882:81e6b5e62a2c
setup: make chardet a mandatory dependency
It was made mandatory in 9685f50a69d0. At that time it seemed like it always
were present due to indirect dependencies, but apparently that is no longer the
case.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Wed, 12 May 2021 12:01:54 +0200 |
parents | f8971422795e |
children |
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) |