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
+