git: f1202f5e14 - main - Remove Python dependency

Sergio Carlavilla Delgado <[email protected]>
Newsgroups gmane.os.freebsd.devel.cvs.doc
Message-ID <[email protected]>
The branch main has been updated by carlavilla:

URL: https://cgit.FreeBSD.org/doc/commit/?id=f1202f5e1430ee863fa77d03e8459010cf5c9bff

commit f1202f5e1430ee863fa77d03e8459010cf5c9bff
Author:     Sergio Carlavilla Delgado <[email protected]>
AuthorDate: 2021-12-12 13:35:56 +0000
Commit:     Sergio Carlavilla Delgado <[email protected]>
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 @@ [email protected]
 # 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 <[email protected]>
-
-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 <[email protected]>
-
-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 <[email protected]>
+
+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
+
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.