diff options
Diffstat (limited to 'website/tools')
| -rw-r--r-- | website/tools/hardware-notes-creator.py | 64 | ||||
| -rw-r--r-- | website/tools/releases-toml.py | 72 | ||||
| -rw-r--r-- | website/tools/releases-toml.rb | 55 |
3 files changed, 55 insertions, 136 deletions
diff --git a/website/tools/hardware-notes-creator.py b/website/tools/hardware-notes-creator.py deleted file mode 100644 index 67c27ccb7d..0000000000 --- a/website/tools/hardware-notes-creator.py +++ /dev/null @@ -1,64 +0,0 @@ -# -*- coding: utf-8 -*- -""" -BSD 2-Clause License - -Copyright (c) 2020-2021, The FreeBSD Project -Copyright (c) 2020-2021, Sergio Carlavilla <carlavilla@FreeBSD.org> - -This script will generate the Table of Contents of the Handbook -""" -#!/usr/bin/env python3 - -import sys, getopt -import ntpath -import subprocess -import os - -manPagesPath = "" - -def loadManPages(manPagesDir): - manPagesPaths = [] - - for root, _, files in os.walk(manPagesDir): - for file in files: - if file.endswith(".4"): - manPagesPaths.append(os.path.join(root, file)) - return manPagesPaths - -def createHardwareNotesDirectory(path): - try: - os.mkdir(path) - except OSError: - print ("Creation of the directory %s failed" % path) - else: - print ("Successfully created the directory %s " % path) - -def main(argv): - - try: - opts, args = getopt.getopt(argv,"hp:",["path="]) - except getopt.GetoptError: - print('hardware-notes-creator.py -p <path>') - sys.exit(2) - - for opt, arg in opts: - if opt == '-h': - print('hardware-notes-creator.py -p <path>') - sys.exit() - elif opt in ("-p", "--path"): - manPagesPath = arg - - manPages = loadManPages("/home/carlavilla/Projects/base/src/share/man/man4/") - createHardwareNotesDirectory('/home/carlavilla/Projects/testsssss') - - for manPage in manPages: - manPageParsed = subprocess.getoutput("mandoc -Tmarkdown " + manPage + " | sed -n '/# HARDWARE/,/#/{/#/!p;}'") - - if len(manPageParsed) > 0: - manPageName = ntpath.basename(manPage).replace(".4", "") - - with open('/home/carlavilla/Projects/testsssss/{}.adoc'.format(manPageName), 'w', encoding = 'utf-8') as manPageFile: - manPageFile.write(manPageParsed) - -if __name__ == "__main__": - main(sys.argv[1:]) diff --git a/website/tools/releases-toml.py b/website/tools/releases-toml.py deleted file mode 100644 index 2dc96d310f..0000000000 --- a/website/tools/releases-toml.py +++ /dev/null @@ -1,72 +0,0 @@ -# -*- coding: utf-8 -*- -""" -BSD 2-Clause License - -Copyright (c) 2020-2021, The FreeBSD Project -Copyright (c) 2020-2021, Sergio Carlavilla <carlavilla@FreeBSD.org> - -This script will convert the releases.adoc file to releases.toml -in this way we can share the releases variables between AsciiDoctor and Hugo -""" -#!/usr/bin/env python3 - -import sys, getopt -import re - -variables = {} - -def getValueByKey(key): - return variables[key.replace("{", "").replace("}", "")].replace("\"", "") - -def loadVariables(path): - with open(path, 'r', encoding = 'utf-8') as releasesFile: - line = releasesFile.readline() - - while line: - if (re.match(r"^:{1}[^\n]+", line)): - variable = re.sub(':', '', line.strip(), 1) - variable = re.sub(': ', '="', variable) - variable += "\"" - data = variable.split("=") - - if (len(data) == 2): - variables.update( {data[0] : data[1]} ) - - line = releasesFile.readline() - -def main(argv): - path = '' - - try: - opts, args = getopt.getopt(argv,"hp:",["path="]) - except getopt.GetoptError: - print('releases-toml.py -p <path>') - sys.exit(2) - for opt, arg in opts: - if opt == '-h': - print('releases-toml.py -p <path>') - sys.exit() - elif opt in ("-p", "--path"): - path = arg - - releasesTOML = "# Code @" + "generated by the FreeBSD Documentation toolchain. DO NOT EDIT.\n" - releasesTOML += "# Please don't change this file manually but run `make` to update it.\n" - releasesTOML += "# For more information, please read the FreeBSD Documentation Project Primer\n" - releasesTOML += '\n' - - loadVariables(path) - - for key in variables: - foundBraces = re.search(r"\{.*?\}", variables[key]) - - if (foundBraces): - braces = foundBraces.group(0) - releasesTOML += key + "=" + variables[key].replace(braces, getValueByKey(braces)) + "\n" - else: - releasesTOML += key + "=" + variables[key] + "\n" - - with open('./data/releases.toml', 'w', encoding = 'utf-8') as releasesTOMLFile: - releasesTOMLFile.write(releasesTOML) - -if __name__ == "__main__": - main(sys.argv[1:]) diff --git a/website/tools/releases-toml.rb b/website/tools/releases-toml.rb new file mode 100644 index 0000000000..3dbd2f6ea2 --- /dev/null +++ b/website/tools/releases-toml.rb @@ -0,0 +1,55 @@ +#!/usr/bin/env ruby + +=begin + +BSD 2-Clause License +Copyright (c) 2020-2021, The FreeBSD Project +Copyright (c) 2020-2021, Sergio Carlavilla <carlavilla@FreeBSD.org> + +This script will merge all the pgpkeys into one single file + +=end + +def getValueByKey(key, variables) + return variables.fetch(key.gsub("{", "").gsub("}", "")).gsub("\"", "") +end + +def mapVariables(path) + variables = Hash.new + + File.foreach(path).with_index do |line| + if line.match("^:{1}[^\n]+") + variable = line.strip.sub(":", '') + variable = variable.sub(": ", "=\"") + variable << "\"" + data = variable.split("=") + + if data.length == 2 + variables.store(data[0], data[1]) + end + end + end + + return variables +end + +# Main method +releasesTOMLFile = File.new("./data/releases.toml", "w") + +releasesTOMLFile.puts("# Code @" + "generated by the FreeBSD Documentation toolchain. DO NOT EDIT.\n") +releasesTOMLFile.puts("# Please don't change this file manually but run `make` to update it.\n") +releasesTOMLFile.puts("# For more information, please read the FreeBSD Documentation Project Primer\n") +releasesTOMLFile.puts("\n") + +variables = mapVariables("./shared/releases.adoc") + +variables.each do |key, value| + + if keyToFind = value.match("\{.*?\}") + releasesTOMLFile.puts(key + "=" + value.gsub(keyToFind[0], getValueByKey(keyToFind[0], variables)) + "\n") + else + releasesTOMLFile.puts(key + "=" + value + "\n") + end + +end + |
