#!/usr/bin/env bash SUBDIRS=(static/openbsd static/netbsd static/freebsd) create() { sqlite3 man.db <&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 chmod 400 man.db } clean() { for SUBDIR in ${SUBDIRS[*]}; do make -C "$SUBDIR" -j "$(nproc)" clean done rm -f man.db } case "$1" in create) create ;; clean) clean ;; *) printf "Error: \"%s\" not an option.\n" "$1" exit 1 ;; esac