]> git.xonotic.org Git - xonotic/xonotic.wiki.git/blobdiff - assets/check-and-fix.py
Merge branch 'master' of git://de.git.xonotic.org/xonotic/xonotic.wiki
[xonotic/xonotic.wiki.git] / assets / check-and-fix.py
index f8833d8f70450dc30af58e4d6363ebac2d68c0bd..f69d206703ee1b0a6149c9491e240abf35de96e3 100755 (executable)
@@ -4,10 +4,8 @@
 
 # Well, this wasn't supposed to be so long and complicated.
 # Anyway, it makes sure the wiki works on both Gitlab and Github by moving
-# stuff around and fixing links. Then it reports all remaining broken links
-# and unused files. Since the wiki is in git, you can use `git status`
-# and `git diff` to see the changes. You can also use the `--dry-run` flag
-# to print all changes the script would make without actually making them.
+# stuff around and fixing links. Then it reports all broken links
+# and unused files that can't be fixed automatically. By default it only prints changes it would make to stdout, if you wish to apply them, use `--fix`.
 
 # See Editing.md for more information.
 
@@ -33,7 +31,7 @@ def compile_regex(rgx: str):
     # regex (unlike re) supports non-constant length look-behinds
     return regex.compile(
         "".join(
-            [line.strip() for line in rgx]))
+            [line.lstrip() for line in rgx.split('\n')]))
 
 
 # examples:
@@ -68,7 +66,7 @@ LINK_REGEX = compile_regex("""
 """)
 
 
-fix = False
+apply_fixes = False
 
 
 def strip_header_link(link: str) -> str:
@@ -126,7 +124,7 @@ def fix_dir_structure():
 
         if os.path.exists(fixed):
             print("warning: collision: {}".format(path))
-        elif fix:
+        elif apply_fixes:
             os.rename(path, fixed)
         else:
             print("would rename {} to {}".format(path, fixed))
@@ -180,11 +178,11 @@ def fix_links():
             changes = []
             replacer = functools.partial(replace_link, changes)
             contents_new = LINK_REGEX.sub(replacer, contents)
-            if fix and contents != contents_new:
+            if apply_fixes and contents != contents_new:
                 f.seek(0)
                 f.write(contents_new)
                 f.truncate()
-            elif not fix and any(changes):
+            elif not apply_fixes and any(changes):
                 print("would convert these links in {}:".format(path))
                 for change in changes:
                     print(change)
@@ -199,7 +197,7 @@ def link_to_path(current_file: str, link: str) -> str:
     # when not using subdirs, nothing or "." works for all 3
 
     if link.startswith("..") or link.startswith("/"):
-        print("file: {} bad link: {}", link)
+        print("file: {} bad link: {}".format(current_file, link))
 
     # path relative to wiki root, not curent file
     current_dir = dirname(current_file)
@@ -288,9 +286,9 @@ def check_links():
 
 
 def main():
-    global fix
+    global apply_fixes
     if len(sys.argv) > 1 and sys.argv[1] == "--fix":
-        fix = True
+        apply_fixes = True
 
     # convert file paths - put everything into root
     fix_dir_structure()