summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 14:50:51 -0400
committerJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 14:50:51 -0400
commita59214f344567c037d5776879bcfc5fcc1d4d5f6 (patch)
tree46130f10093d8e1498524133246b93c463f0433c /build
parent6d8bdc65446a704d0750217efd05532fc641ea7d (diff)
feat:Script to Build and Register
Created a script that will build all the manpages and register them into an sqlite3 database. Each entry has the name, section, os, and path to the html fragment.
Diffstat (limited to 'build')
-rwxr-xr-xbuild55
1 files changed, 55 insertions, 0 deletions
diff --git a/build b/build
new file mode 100755
index 00000000..c7eb7fcb
--- /dev/null
+++ b/build
@@ -0,0 +1,55 @@
+#!/usr/bin/env bash
+
+SUBDIRS=(static/openbsd)
+
+sqlite3 man.db <<EOF
+CREATE TABLE manpages (
+ os TEXT,
+ name TEXT,
+ section INTEGER,
+ path TEXT,
+ PRIMARY KEY (os, name, section)
+);
+EOF
+
+if [[ $? != 0 ]];
+then
+ printf "Error: error creating table.\n" >&2
+ exit 1
+fi
+
+for SUBDIR in ${SUBDIRS[*]};
+do
+ make -j "$(nproc)" -C "$SUBDIR"
+
+ if [[ $? != 0 ]];
+ then
+ printf "Error: error building %s man pages.\n" "$SUBDIR" >&2
+ exit 1
+ fi
+
+ HTML=$(find "$SUBDIR" -type f -name '*.html')
+
+ for FILE in $HTML;
+ do
+ SECTION=$(basename "$FILE" | sed -E 's|.*\.([0-9])\..*|\1|')
+ NAME=$(basename "$FILE" | sed -E 's|(.*)\.[0-9]\.html|\1|')
+ OS=$(basename "$SUBDIR")
+
+ if [[ -n "$(echo "$FILE" | grep "man$SECTION\.")" ]];
+ then
+ NAME="$(echo "$FILE" | sed -E "s|.*man$SECTION\.(.*)/.*|\1|" ).$NAME"
+ fi
+
+ echo "INSERT INTO manpages (os, name, section, path) VALUES ('"$OS"', '"$NAME"', '"$SECTION"', '"$FILE"');"
+ sqlite3 man.db \
+ "INSERT INTO manpages (os, name, section, path) VALUES ('"$OS"', '"$NAME"', '"$SECTION"', '"$FILE"');"
+
+ if [[ $? != 0 ]];
+ then
+ printf "Error: error inserting ('%s', '%s', '%s', '%s').\n" "$OS" "$NAME" "$SECTION" "$FILE" >&2
+ exit 1
+ fi
+ done
+done
+