diff --git a/source/Makefile b/source/Makefile index 655286aa..6ef592c3 100644 --- a/source/Makefile +++ b/source/Makefile @@ -166,10 +166,8 @@ changes: @echo "The overview file is in $(BUILDDIR)/changes." linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." + -$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + python3 scripts/_python/linkcheck/parse-link-check.py $(BUILDDIR)/linkcheck doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest diff --git a/source/scripts/_python/linkcheck/link-whitelist.txt b/source/scripts/_python/linkcheck/link-whitelist.txt new file mode 100644 index 00000000..a33863a4 --- /dev/null +++ b/source/scripts/_python/linkcheck/link-whitelist.txt @@ -0,0 +1,19 @@ +http://www.intel.com/content/www/us/en/virtualization/virtualization-technology/intel-virtualization-technology.html +https://software.intel.com/en-us/articles/intel-virtualization-technology-for-directed-io-vt-d-enhancing-intel-platforms-for-efficient-virtualization-of-io-devices +http://www.intel.com/content/www/us/en/virtualization/virtualization-technology/intel-virtualization-technology.html +https://software.intel.com/en-us/articles/intel-virtualization-technology-for-directed-io-vt-d-enhancing-intel-platforms-for-efficient-virtualization-of-io-devices +https://software.intel.com/en-us/articles/intel-virtualization-technology-for-directed-io-vt-d-enhancing-intel-platforms-for-efficient-virtualization-of-io-devices +https://www.intel.com/content/www/us/en/virtualization/virtualization-technology/intel-virtualization-technology.html +https://www.intel.com/content/www/us/en/virtualization/virtualization-technology/intel-virtualization-technology.html +https://github.com/clearlinux/common#build-rpms-for-a-package +https://www.intel.com/content/www/us/en/privacy/intel-privacy-notice.html +http://ark.intel.com +https://clearlinux.org/documentation/clear-linux/concepts/bundles-about#related-concepts +https://software.intel.com/en-us/articles/OpenVINO-ModelOptimizer +https://github.com/kata-containers/documentation/blob/master/Upgrading.md#maintenance-warning +https://github.com/clearcontainers/runtime#configuration +https://github.com/kata-containers/runtime#configuration +https://kubernetes.io/docs/user-journeys/users/application-developer/foundational/#section-3 +https://kubernetes.io/docs/user-journeys/users/application-developer/foundational/#section-2 +https://www.intel.com/content/www/us/en/privacy/intel-privacy-notice.html +http://www.intel.com/content/www/us/en/nuc/nuc-kit-nuc6i5syh.html \ No newline at end of file diff --git a/source/scripts/_python/linkcheck/parse-link-check.py b/source/scripts/_python/linkcheck/parse-link-check.py new file mode 100644 index 00000000..9909cf1d --- /dev/null +++ b/source/scripts/_python/linkcheck/parse-link-check.py @@ -0,0 +1,87 @@ +#!/usr/bin/env python + +#*********************************************************** +# +# parse-link-check.py +# +# Arguments: +# 1. path to input file +# +# External file dependencies: +# 1. output.txt - the output of sphinx-build +# 2. link-whitelist.txt - broken links that should be ignored +# +# Output: +# 1. broken_links.html - provides count of broken and whitelist +# matches. Also provides links to all flagged links. Will +# appear in the same directory as output.txt +# 2. Error code 255 if unexpected broken links are found +# +#*********************************************************** + + +import sys +import re +import os + +fileName = "output.txt" +outFile = "broken_links.html" +whitelistFile = "link-whitelist.txt" + +if len(sys.argv) < 2: + print ("Enter path of input directory") + sys.exit() + +scriptPath = sys.argv[0] +outputPath = sys.argv[1] +fileNamePath = outputPath + "/" + fileName +outFilePath = outputPath + "/" + outFile + +whitelistFilePath = os.path.dirname(scriptPath) + "/" + whitelistFile + +with open (whitelistFilePath) as w: + whLines = w.readlines() + +whitelist = [] +for line in whLines: + link = line.rstrip() + whitelist.append(link) + +with open (fileNamePath) as f: + lines = f.readlines() + +numBrokenLinks = 0 +numWhiteListMatches = 0 +newLines = ["
"] +whiteListLines = [] + +for line in lines: + if "[broken]" in line: + strings = line.split(" ") + link = strings[2][:-1] + link = link.strip() + if link in whitelist: + whiteListLines.append("" + strings[0] + "\n[whitelist] " + link + "\n") + numWhiteListMatches += 1 + else: + newLines.append("" + strings[0] + "\n
[broken] " + link + "\n") + numBrokenLinks += 1 + +newLines.insert(0,"