diff options
Diffstat (limited to 'tools/site')
| -rw-r--r-- | tools/site/check_site.py | 31 | ||||
| -rw-r--r-- | tools/site/pages/Community.wiki | 2 | ||||
| -rw-r--r-- | tools/site/pages/Documentation.wiki | 2 | ||||
| -rw-r--r-- | tools/site/pages/Main-Page.wiki | 2 | ||||
| -rw-r--r-- | tools/site/pages/MediaWiki-Sidebar.wiki | 2 | ||||
| -rw-r--r-- | tools/site/pages/Open-IOV-About.wiki | 2 | ||||
| -rw-r--r-- | tools/site/titles.json | 2 |
7 files changed, 37 insertions, 6 deletions
diff --git a/tools/site/check_site.py b/tools/site/check_site.py index e56d0c0..e79af25 100644 --- a/tools/site/check_site.py +++ b/tools/site/check_site.py @@ -72,6 +72,32 @@ def all_titles(): return titles +def check_external(url_cache, url, problems, title): + """HEAD/GET-check a git.vgpu.io URL once; report non-OK statuses.""" + if url in url_cache: + ok, note = url_cache[url] + else: + ok, note = False, "unchecked" + for attempt in range(4): + try: + req = urllib.request.Request(url, headers=UA, method="GET") + with urllib.request.urlopen(req, timeout=60) as r: + ok = r.status in (200, 301, 302) + note = str(r.status) + r.read(1) + break + except urllib.error.HTTPError as e: + ok, note = e.code in (200, 301, 302), str(e.code) + if e.code not in (429, 500, 502, 503): + break + except Exception as e: # noqa: BLE001 + note = type(e).__name__ + time.sleep(2 * (attempt + 1)) + url_cache[url] = (ok, note) + if not ok: + problems.append(f"repo link {note}: {url}") + + def main(): ap = argparse.ArgumentParser() ap.add_argument("--pages", nargs="*", default=[]) @@ -79,6 +105,7 @@ def main(): titles = args.pages or all_titles() existing = {t.lower(): t for t in all_titles()} + repo_url_cache = {} problems = 0 for title in titles: @@ -117,6 +144,10 @@ def main(): continue if tgt.lower() not in existing: issues.append(f"unresolved link [[{tgt}]]") + for u in set(re.findall(r"https?://git\.vgpu\.io[^\s\]\}<>\"|]*", c)): + u = u.rstrip(".,;:)") + check_external(repo_url_cache, u, issues, title) + time.sleep(0.2) if issues: problems += 1 print(f"BAD {title}") diff --git a/tools/site/pages/Community.wiki b/tools/site/pages/Community.wiki index 1516783..0c896c5 100644 --- a/tools/site/pages/Community.wiki +++ b/tools/site/pages/Community.wiki @@ -3,7 +3,7 @@ == Community == '''Chat:''' [https://discord.gg/Rb9K9DYxKK Open-IOV Discord] -'''Source code and issues:''' [https://git.vgpu.io/open-iov git.vgpu.io/open-iov] +'''Source code and issues:''' [https://git.vgpu.io/open-iov.git/ git.vgpu.io/open-iov] == Contributing == The project welcomes contributors of every kind. The most valuable contribution is evidence: a new hardware or software combination tested with the project's methodology, with the captures listed in the repository's debugging document. diff --git a/tools/site/pages/Documentation.wiki b/tools/site/pages/Documentation.wiki index 00d40bc..79f2cec 100644 --- a/tools/site/pages/Documentation.wiki +++ b/tools/site/pages/Documentation.wiki @@ -1,6 +1,6 @@ {{About message}} -This is the index of the Open-IOV wiki. If you are new, read '''[[Project Status]]''' first, then '''[[System Overview]]'''. The wiki is a curated public view of the project's maintained documentation; each page names its canonical document in the [https://git.vgpu.io/open-iov repository]. +This is the index of the Open-IOV wiki. If you are new, read '''[[Project Status]]''' first, then '''[[System Overview]]'''. The wiki is a curated public view of the project's maintained documentation; each page names its canonical document in the [https://git.vgpu.io/open-iov.git/ repository]. == Start here == * [[Project Status]] — what works today, what is in progress, what is not started diff --git a/tools/site/pages/Main-Page.wiki b/tools/site/pages/Main-Page.wiki index fb08f81..9a80009 100644 --- a/tools/site/pages/Main-Page.wiki +++ b/tools/site/pages/Main-Page.wiki @@ -62,7 +62,7 @@ The full story, with evidence and the current wall: [[Project Status]] and [[The * [[FAQ]] · [[Glossary]] == Community == -* Source and issues: [https://git.vgpu.io/open-iov git.vgpu.io/open-iov] +* Source and issues: [https://git.vgpu.io/open-iov.git/ git.vgpu.io/open-iov] * Chat: [https://discord.gg/Rb9K9DYxKK Open-IOV Discord] == About Open-IOV == diff --git a/tools/site/pages/MediaWiki-Sidebar.wiki b/tools/site/pages/MediaWiki-Sidebar.wiki index 499f954..4e6ab70 100644 --- a/tools/site/pages/MediaWiki-Sidebar.wiki +++ b/tools/site/pages/MediaWiki-Sidebar.wiki @@ -24,7 +24,7 @@ ** Glossary * Community ** Community -** https://git.vgpu.io/open-iov|Source repository +** https://git.vgpu.io/open-iov.git/|Source repository ** https://discord.gg/Rb9K9DYxKK|Discord * SEARCH * TOOLBOX diff --git a/tools/site/pages/Open-IOV-About.wiki b/tools/site/pages/Open-IOV-About.wiki index 1084ae1..0195c91 100644 --- a/tools/site/pages/Open-IOV-About.wiki +++ b/tools/site/pages/Open-IOV-About.wiki @@ -24,6 +24,6 @@ See [[System Overview]] for the architecture and [[Project Status]] for the hone The project's source code is licensed separately: '''BSD 3-Clause''' for everything reusable (userspace libraries, tools, scripts, configuration) and '''GPL-2.0''' for the kernel modules that must legally link against GPL-only kernel exports (VFIO, mdev, IOMMU); per-file SPDX identifiers govern. NVIDIA's software and firmware are used unmodified and are not redistributed. See the repository's <code>LICENSE</code> and <code>docs/09-reference/legal-and-licensing.md</code> for the full statement. == Community == -* Source and issues: [https://git.vgpu.io/open-iov git.vgpu.io/open-iov] +* Source and issues: [https://git.vgpu.io/open-iov.git/ git.vgpu.io/open-iov] * Chat: [https://discord.gg/Rb9K9DYxKK Open-IOV Discord] * See [[Community]] and [[HAAEEP and Collaboration]]. diff --git a/tools/site/titles.json b/tools/site/titles.json index cffa52b..b193342 100644 --- a/tools/site/titles.json +++ b/tools/site/titles.json @@ -1,5 +1,5 @@ { - "repo_base": "https://git.vgpu.io/open-iov/blob/master/", + "repo_base": "https://git.vgpu.io/open-iov.git/tree/", "wiki_titles": { "README.md": "Documentation", "Address-Reference.md": "Address Reference", |
