summaryrefslogtreecommitdiff
path: root/website/tools
diff options
context:
space:
mode:
authorSergio Carlavilla Delgado <carlavilla@FreeBSD.org>2021-12-26 18:54:18 +0000
committerSergio Carlavilla Delgado <carlavilla@FreeBSD.org>2021-12-26 18:58:25 +0000
commitb2ff99423bdb0dd72c7ce2e07d26a742c793edc0 (patch)
tree17b503581936816641494daee004d4fb7841bdec /website/tools
parent23432b3ec6844e6d49747fe127f8c7a7bf4f413b (diff)
Add Hugo Archetype to generate new releases.
Use: Navigate to website root folder and execute `generate-release` to generate the 15.0 release using the main branch: * make generate-release RELEASE=15.0 MAIN=true Navigate to website root folder and execute `generate-release` to generate the 12.3 release using the 12.3 release branch: * make generate-release RELEASE=12.3
Diffstat (limited to 'website/tools')
-rw-r--r--website/tools/hardware-notes-processor.rb44
1 files changed, 44 insertions, 0 deletions
diff --git a/website/tools/hardware-notes-processor.rb b/website/tools/hardware-notes-processor.rb
new file mode 100644
index 0000000000..8d528c3335
--- /dev/null
+++ b/website/tools/hardware-notes-processor.rb
@@ -0,0 +1,44 @@
+#!/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 generate the hardware notes
+
+=end
+require 'open3'
+
+# Main method
+puts "Processing hardware notes..."
+
+if ARGV.length < 1 || ARGV.length > 1
+ puts "Only expecting the release version"
+ exit
+end
+
+hardwareNotesPath = ARGV[0]
+hardwareNotesContent = ""
+
+File.foreach(hardwareNotesPath).with_index do |line|
+ if (line[/&hwlist.\b/])
+ manualPage = line.gsub("&hwlist.", "").gsub(";", "").gsub("\n", "")
+
+ if(File.exist?("tmp/share/man/man4/" + manualPage + ".4"))
+ cmd = "mandoc -Tmarkdown tmp/share/man/man4/" + manualPage + ".4 | sed -n '/# HARDWARE/,/#/{/#/!p;}' "
+ mandocOut, err, s = Open3::capture3(cmd)
+ if s.success?
+ hardwareNotesContent << mandocOut
+ end
+ else
+ puts "WARNING: The manual page " + manualPage + " does not exists"
+ end
+ else
+ hardwareNotesContent << line
+ end
+end
+
+File.open(hardwareNotesPath, 'w') do |out|
+ out << hardwareNotesContent
+end