summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouie Shprung <lshprung@scu.edu>2022-12-30 12:48:13 -0800
committerLouie Shprung <lshprung@scu.edu>2022-12-30 12:48:13 -0800
commit234d8b9d0fb568e2ad0f6ec9b88fbae87e7145ae (patch)
tree75a3b7b2b9c3009db34b17fe6308f9c1e63019e9
parent790b9753775c20fd007dacc94b4c3860cf59dff1 (diff)
Rudimentary docset creation
-rw-r--r--Makefile10
-rw-r--r--src/Info.plist6
-rw-r--r--src/icon.pngbin1617 -> 0 bytes
-rwxr-xr-xsrc/index.sh63
4 files changed, 47 insertions, 32 deletions
diff --git a/Makefile b/Makefile
index 023d235..929ca2e 100644
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,7 @@ DOCUMENTS_DIR = $(RESOURCES_DIR)/Documents
INFO_PLIST_FILE = $(CONTENTS_DIR)/Info.plist
INDEX_FILE = $(RESOURCES_DIR)/docSet.dsidx
-ICON_FILE = $(DOCSET_DIR)/icon.png
+#ICON_FILE = $(DOCSET_DIR)/icon.png
ARCHIVE_FILE = $(DOCSET_NAME).tgz
MANUAL_URL = https://invisible-island.net/archives/ncurses/ncurses.tar.gz
@@ -16,7 +16,7 @@ MANUAL_SRC = tmp/ncurses-*
MANUAL_PATH = ncurses-*/doc/html
MANUAL_FILE = $(MANUAL_SRC)/doc/html
-DOCSET = $(INFO_PLIST_FILE) $(INDEX_FILE) $(ICON_FILE)
+DOCSET = $(INFO_PLIST_FILE) $(INDEX_FILE)
all: $(DOCSET)
@@ -55,7 +55,7 @@ $(INFO_PLIST_FILE): src/Info.plist $(CONTENTS_DIR)
$(INDEX_FILE): src/index.sh $(DOCUMENTS_DIR)
rm -f $@
- src/index.sh $@ $(DOCUMENTS_DIR)/*.html
+ src/index.sh $@ $(DOCUMENTS_DIR)/*
-$(ICON_FILE): src/icon.png $(DOCSET_DIR)
- cp src/icon.png $@
+#$(ICON_FILE): src/icon.png $(DOCSET_DIR)
+# cp src/icon.png $@
diff --git a/src/Info.plist b/src/Info.plist
index 2850204..8cf14a1 100644
--- a/src/Info.plist
+++ b/src/Info.plist
@@ -3,11 +3,11 @@
<plist version="1.0">
<dict>
<key>CFBundleIdentifier</key>
- <string>gnuautoconf</string>
+ <string>ncurses</string>
<key>CFBundleName</key>
- <string>GNU Autoconf</string>
+ <string>ncurses</string>
<key>DocSetPlatformFamily</key>
- <string>autoconf</string>
+ <string>ncurses</string>
<key>isDashDocset</key>
<true/>
</dict>
diff --git a/src/icon.png b/src/icon.png
deleted file mode 100644
index 9b18522..0000000
--- a/src/icon.png
+++ /dev/null
Binary files differ
diff --git a/src/index.sh b/src/index.sh
index e81a0f7..e506ae4 100755
--- a/src/index.sh
+++ b/src/index.sh
@@ -6,7 +6,7 @@ shift
get_title() {
FILE="$1"
- PATTERN="<title>.*\(Autoconf\).*</title>"
+ PATTERN="<[tT][iI][tT][lL][eE]>.*</[tT][iI][tT][lL][eE]>"
#Find pattern in file
grep -Eo "$PATTERN" "$FILE" |
@@ -18,6 +18,8 @@ get_title() {
sed 's/[ ]*$//g' | \
#Replace '&amp' with '&'
sed 's/&amp/&/g' | \
+ # ReplACE '&ndash;' with '-'
+ sed 's/&ndash;/-/g' | \
#Replace '&lt;' with '<'
sed 's/&lt;/</g'
}
@@ -27,13 +29,13 @@ get_type() {
PATTERN="The node you are looking for is at.*Limitations-of-.*\.html;Builtin
The node you are looking for is at;Macro"
- echo "$PATTERN" | while read -r line; do
- #echo "$line"
- if grep -Eq "$(echo "$line" | cut -d ';' -f 1)" "$FILE"; then
- echo "$line" | cut -d ';' -f 2
- break
- fi
- done
+ #echo "$PATTERN" | while read -r line; do
+ # #echo "$line"
+ # if grep -Eq "$(echo "$line" | cut -d ';' -f 1)" "$FILE"; then
+ # echo "$line" | cut -d ';' -f 2
+ # break
+ # fi
+ #done
}
insert() {
@@ -44,23 +46,36 @@ insert() {
sqlite3 "$DB_PATH" "INSERT INTO searchIndex(name, type, path) VALUES (\"$NAME\",\"$TYPE\",\"$PAGE_PATH\");"
}
+# Get title and insert into table for each html file
+main() {
+ while [ -n "$1" ]; do
+ unset PAGE_NAME
+ unset PAGE_TYPE
+
+ echo "FILE: $1"
+ # Recurse into subdirectories
+ if [ -d "$1" ]; then
+ main "$1"/*
+ else
+ PAGE_NAME="$(get_title "$1")"
+ if [ -n "$PAGE_NAME" ]; then
+ PAGE_TYPE="$(get_type "$1")"
+ #get_type "$1"
+ if [ -z "$PAGE_TYPE" ]; then
+ PAGE_TYPE="Guide"
+ fi
+ echo "$PAGE_NAME"
+ echo "$PAGE_TYPE"
+ insert "$PAGE_NAME" "$PAGE_TYPE" "$(echo "$1" | sed 's/^ncurses.docset\/Contents\/Resources\/Documents\///')"
+ fi
+ fi
+
+ shift
+ done
+}
+
# Create table
sqlite3 "$DB_PATH" "CREATE TABLE searchIndex(id INTEGER PRIMARY KEY, name TEXT, type TEXT, path TEXT);"
sqlite3 "$DB_PATH" "CREATE UNIQUE INDEX anchor ON searchIndex (name, type, path);"
-# 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")"
- if [ -n "$PAGE_NAME" ]; then
- PAGE_TYPE="$(get_type "$1")"
- #get_type "$1"
- if [ -z "$PAGE_TYPE" ]; then
- PAGE_TYPE="Guide"
- fi
- #echo "$PAGE_TYPE"
- insert "$PAGE_NAME" "$PAGE_TYPE" "$(basename "$1")"
- fi
- shift
-done
+main "$@"