summaryrefslogtreecommitdiff
path: root/src/index.sh
blob: d3226ecad9f5d60770f380d8898a6a290956248d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/env sh

# shellcheck source=../../../scripts/create_table.sh
. "$(dirname "$0")"/../../../scripts/create_table.sh
# shellcheck source=../../../scripts/insert.sh
. "$(dirname "$0")"/../../../scripts/insert.sh

DB_PATH="$1"
shift

get_title() {
	FILE="$1"

	PATTERN="<.*class=\"title\">.*"

	#Find pattern in file
	grep -Eo "$PATTERN" "$FILE" | 
		#Remove tag
		sed 's/<[^>]*>//' | \
		#Remove trailing space
		sed 's/[ ]*$//g' | \
		#Replace '&amp' with '&'
		sed 's/&amp/&/g'
}

insert_pages() {
	# Get titles and insert into table for each html file
	while [ -n "$1" ]; do
		unset PAGE_NAME
		PAGE_NAME="$(get_title "$1")"
		echo "$PAGE_NAME" | while read -r line; do
			if [ -n "$line" ]; then
				unset TITLE
				TITLE="$(echo "$line" | sed 's/<[^>]*>//g' | sed -E 's/^Chapter |Appendix //' | sed 's/^[A-Z0-9]\.[^ ]* //')"
				unset LINK
				LINK="$(basename "$1")#$(echo "$line" | sed 's/^.\{7\}//' | sed 's/\"\/>.*//')"
				insert "$DB_PATH" "$TITLE" "Guide" "$LINK"
			fi
		done
		shift
	done
}

create_table "$DB_PATH"
insert_pages "$@"