git: f1202f5e14 - main - Remove Python dependency
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 12 Dec 2021 13:48:07 UTC
The branch main has been updated by carlavilla: URL: https://cgit.FreeBSD.org/doc/commit/?id=f1202f5e1430ee863fa77d03e8459010cf5c9bff commit f1202f5e1430ee863fa77d03e8459010cf5c9bff Author: Sergio Carlavilla Delgado <carlavilla@FreeBSD.org> AuthorDate: 2021-12-12 13:35:56 +0000 Commit: Sergio Carlavilla Delgado <carlavilla@FreeBSD.org> CommitDate: 2021-12-12 13:47:44 +0000 Remove Python dependency - Convert releases-toml to Ruby - Remove hardware notes creator script --- website/Makefile | 8 ++-- website/tools/hardware-notes-creator.py | 64 ----------------------------- website/tools/releases-toml.py | 72 --------------------------------- website/tools/releases-toml.rb | 55 +++++++++++++++++++++++++ 4 files changed, 60 insertions(+), 139 deletions(-) diff --git a/website/Makefile b/website/Makefile index e62d177b57..c1f3d6893e 100644 --- a/website/Makefile +++ b/website/Makefile @@ -18,8 +18,10 @@ MAINTAINER=carlavilla@FreeBSD.org # List of all languages we have content for ALL_LANGUAGES= de el en es fr hu it ja nl ru tr zh-cn zh-tw -PYTHON_CMD = /usr/local/bin/python3 -HUGO_CMD = /usr/local/bin/hugo +LOCALBASE?= /usr/local + +RUBY_CMD = ${LOCALBASE}/bin/ruby +HUGO_CMD = ${LOCALBASE}/bin/hugo HUGO_ARGS?= --verbose RUBYLIB = ../shared/lib .export RUBYLIB @@ -80,7 +82,7 @@ end-message: .PHONY generate-releases: data/releases.toml data/releases.toml: - ${PYTHON_CMD} ./tools/releases-toml.py -p ./shared/releases.adoc + ${RUBY_CMD} ./tools/releases-toml.rb run-local: .PHONY HUGO_DISABLELANGUAGES="${SKIP_LANGS}" ${HUGO_CMD} server \ 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 +