From 3c530aafe415db3515465e8b0662373065afd925 Mon Sep 17 00:00:00 2001 From: Louie Shprung Date: Sun, 26 Mar 2023 13:58:50 -0700 Subject: Index terms --- src/index-page.sh | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100755 src/index-page.sh (limited to 'src/index-page.sh') diff --git a/src/index-page.sh b/src/index-page.sh new file mode 100755 index 0000000..e26cdf8 --- /dev/null +++ b/src/index-page.sh @@ -0,0 +1,61 @@ +#!/usr/bin/env sh + +# shellcheck source=./lib/create_table +. "$(dirname "$0")"/lib/create_table +# shellcheck source=./lib/insert +. "$(dirname "$0")"/lib/insert + +DB_PATH="$1" +shift + +get_title() { + FILE="$1" + + pup -p -f "$FILE" 'title text{}' | \ + sed 's/(Lexical Analysis With Flex.*)//' | \ + tr -d \\n | \ + sed 's/\"/\"\"/g' +} + +get_type() { + PAGE_NAME="$1" + + case "$PAGE_NAME" in + option-*) + echo "Option" + ;; + *) + echo "Guide" + esac +} + +insert_pages() { + # Get title and insert into table for each html file + while [ -n "$1" ]; do + unset PAGE_NAME + unset PAGE_TYPE + PAGE_NAME="$(get_title "$1")" + + # determine type + case "$PAGE_NAME" in + option-*) + PAGE_TYPE="Option" + PAGE_NAME="$(echo "$PAGE_NAME" | sed 's/^option-//')" + ;; + unnamed-* | deleteme* | ERASEME*) + shift + continue + ;; + *) + PAGE_TYPE="Guide" + esac + + if [ -n "$PAGE_NAME" ]; then + insert "$DB_PATH" "$PAGE_NAME" "$PAGE_TYPE" "$(basename "$1")" + fi + shift + done +} + +create_table "$DB_PATH" +insert_pages "$@" -- cgit