aboutsummaryrefslogtreecommitdiff
path: root/website/tools
diff options
context:
space:
mode:
authorSergio Carlavilla Delgado <carlavilla@FreeBSD.org>2021-12-12 13:35:56 +0000
committerSergio Carlavilla Delgado <carlavilla@FreeBSD.org>2021-12-12 13:47:44 +0000
commitf1202f5e1430ee863fa77d03e8459010cf5c9bff (patch)
tree8413c4cdffd8dd0de5eb6a5fec50176678966c56 /website/tools
parent8c5b188cc380bfc2303f989521948f67d42630ce (diff)
Remove Python dependency
- Convert releases-toml to Ruby - Remove hardware notes creator script
Diffstat (limited to 'website/tools')
-rw-r--r--website/tools/hardware-notes-creator.py64
-rw-r--r--website/tools/releases-toml.py72
-rw-r--r--website/tools/releases-toml.rb55
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
+