]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sync-docs: apply "ruff format" and "ruff check --fix"
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 19 Feb 2026 17:12:00 +0000 (02:12 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 17 May 2026 17:44:47 +0000 (02:44 +0900)
tools/sync-docs.py

index ce10b1b44492d3f3a985909e6741228ad17a8c6a..45c71243498ad60864edb251f0ae5c29859b9037 100755 (executable)
@@ -1,21 +1,21 @@
 #!/usr/bin/env python3
 # SPDX-License-Identifier: LGPL-2.1-or-later
 
-from argparse import ArgumentParser
 import glob
 import json
 import os
 import re
 import subprocess
 import sys
+from argparse import ArgumentParser
 
 import requests
 
-BASE_URL = "https://www.freedesktop.org/software/systemd/man/"
-JQUERY_URL = "https://code.jquery.com/jquery-3.7.1.min.js"
+BASE_URL = 'https://www.freedesktop.org/software/systemd/man/'
+JQUERY_URL = 'https://code.jquery.com/jquery-3.7.1.min.js'
 SCRIPT_TAG = '<script src="{}"></script>'
 
-NAV_JS = """
+NAV_JS = '''
 $(document).ready(function() {
     $.getJSON("../index.json", function(data) {
         data.sort().reverse();
@@ -48,77 +48,77 @@ $(document).ready(function() {
         });
     });
 });
-"""
+'''
 
 
 def process_file(filename):
     with open(filename) as f:
         contents = f.read()
 
-    if SCRIPT_TAG.format("../nav.js") in contents:
+    if SCRIPT_TAG.format('../nav.js') in contents:
         return
 
-    body_tag = re.search("<body[^>]*>", contents)
+    body_tag = re.search('<body[^>]*>', contents)
     new_contents = (
         contents[: body_tag.end()]
         + SCRIPT_TAG.format(JQUERY_URL)
-        + SCRIPT_TAG.format("../nav.js")
+        + SCRIPT_TAG.format('../nav.js')
         + contents[body_tag.end() :]
     )
 
-    with open(filename, "w") as f:
+    with open(filename, 'w') as f:
         f.write(new_contents)
 
 
 def update_index_file(version, index_filename):
-    response = requests.get(BASE_URL + "index.json")
+    response = requests.get(BASE_URL + 'index.json')
     if response.status_code == 404:
         index = []
     elif response.ok:
         index = response.json()
     else:
-        sys.exit(f"Error getting index: {response.status_code} {response.reason}")
+        sys.exit(f'Error getting index: {response.status_code} {response.reason}')
 
     if version not in index:
         index.insert(0, version)
 
-    with open(index_filename, "w") as f:
+    with open(index_filename, 'w') as f:
         json.dump(index, f)
 
 
 def get_latest_version():
-    tags = subprocess.check_output(["git", "tag", "-l", "v*"], text=True).split()
+    tags = subprocess.check_output(['git', 'tag', '-l', 'v*'], text=True).split()
     versions = []
     for tag in tags:
-        m = re.match(r"v?(\d+).*", tag)
+        m = re.match(r'v?(\d+).*', tag)
         if m:
             versions.append(int(m.group(1)))
     return max(versions)
 
 
 def main(version, directory, www_target):
-    index_filename = os.path.join(directory, "index.json")
-    nav_filename = os.path.join(directory, "nav.js")
+    index_filename = os.path.join(directory, 'index.json')
+    nav_filename = os.path.join(directory, 'nav.js')
     # The upload directory does not contain point release suffixes
-    version = re.sub(r"\..+$", "", version)
+    version = re.sub(r'\..+$', '', version)
 
-    current_branch = subprocess.check_output(["git", "branch", "--show-current"], text=True).strip()
+    current_branch = subprocess.check_output(['git', 'branch', '--show-current'], text=True).strip()
 
-    if current_branch != 'main' and not current_branch.endswith("-stable"):
-        sys.exit("doc-sync should only be run from main or a stable branch")
+    if current_branch != 'main' and not current_branch.endswith('-stable'):
+        sys.exit('doc-sync should only be run from main or a stable branch')
 
-    for filename in glob.glob(os.path.join(directory, "*.html")):
+    for filename in glob.glob(os.path.join(directory, '*.html')):
         process_file(filename)
 
-    if current_branch == "main":
-        version = "devel"
-        dirs = ["devel"]
+    if current_branch == 'main':
+        version = 'devel'
+        dirs = ['devel']
     elif int(version) == get_latest_version():
-        dirs = [version, "latest"]
+        dirs = [version, 'latest']
     else:
         dirs = [version]
 
-    with open(nav_filename, "w") as f:
+    with open(nav_filename, 'w') as f:
         f.write(NAV_JS)
 
     update_index_file(version, index_filename)
@@ -126,33 +126,33 @@ def main(version, directory, www_target):
     for d in dirs:
         subprocess.check_call(
             [
-                "rsync",
-                "-rlv",
-                "--delete-excluded",
-                "--include=*.html",
-                "--exclude=*",
-                "--omit-dir-times",
-                directory + "/",  # copy contents of directory
-                os.path.join(www_target, "man", d),
+                'rsync',
+                '-rlv',
+                '--delete-excluded',
+                '--include=*.html',
+                '--exclude=*',
+                '--omit-dir-times',
+                directory + '/',  # copy contents of directory
+                os.path.join(www_target, 'man', d),
             ]
         )
 
     subprocess.check_call(
         [
-            "rsync",
-            "-v",
-            os.path.join(directory, "index.json"),
-            os.path.join(directory, "nav.js"),
-            os.path.join(www_target, "man"),
+            'rsync',
+            '-v',
+            os.path.join(directory, 'index.json'),
+            os.path.join(directory, 'nav.js'),
+            os.path.join(www_target, 'man'),
         ]
     )
 
 
-if __name__ == "__main__":
+if __name__ == '__main__':
     parser = ArgumentParser()
-    parser.add_argument("--version", required=True)
-    parser.add_argument("directory")
-    parser.add_argument("www_target")
+    parser.add_argument('--version', required=True)
+    parser.add_argument('directory')
+    parser.add_argument('www_target')
 
     args = parser.parse_args()
     main(args.version, args.directory, args.www_target)