diff scripts/source_format.py @ 8771:f8971422795e

scripts: introduce source_format.py to fix up the module name in file headers
author Mads Kiilerich <mads@kiilerich.com>
date Sat, 07 Nov 2020 02:29:41 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/source_format.py	Sat Nov 07 02:29:41 2020 +0100
@@ -0,0 +1,24 @@
+#!/usr/bin/env python3
+
+# hg files 'set:!binary()&grep("^#!.*python")' 'set:**.py' | xargs scripts/source_format.py
+
+import re
+import sys
+
+
+filenames = sys.argv[1:]
+
+for fn in filenames:
+    with open(fn) as f:
+        org_content = f.read()
+
+    mod_name = fn[:-3] if fn.endswith('.py') else fn
+    mod_name = mod_name[:-9] if mod_name.endswith('/__init__') else mod_name
+    mod_name = mod_name.replace('/', '.')
+    def f(m):
+        return '"""\n%s\n%s\n' % (mod_name, '~' * len(mod_name))
+    new_content = re.sub(r'^"""\n(kallithea\..*\n)(~+\n)?', f, org_content, count=1, flags=re.MULTILINE)
+
+    if new_content != org_content:
+        with open(fn, 'w') as f:
+            f.write(new_content)