diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 14:50:51 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 14:50:51 -0400 |
| commit | a59214f344567c037d5776879bcfc5fcc1d4d5f6 (patch) | |
| tree | 46130f10093d8e1498524133246b93c463f0433c /build | |
| parent | 6d8bdc65446a704d0750217efd05532fc641ea7d (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-x | build | 55 |
1 files changed, 55 insertions, 0 deletions
@@ -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 + |
