X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic.wiki.git;a=blobdiff_plain;f=assets%2Fcheck-and-fix.py;h=f69d206703ee1b0a6149c9491e240abf35de96e3;hp=f8833d8f70450dc30af58e4d6363ebac2d68c0bd;hb=a55d4536fa91f419b8091727d1e207b69324e87c;hpb=f1badcaeaf8b8f221da385dffe4ae35758cccc90 diff --git a/assets/check-and-fix.py b/assets/check-and-fix.py index f8833d8..f69d206 100755 --- a/assets/check-and-fix.py +++ b/assets/check-and-fix.py @@ -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()