From e772062371ddbbacc20d6f2ec1b6fefddd76dc7e Mon Sep 17 00:00:00 2001 From: Louie Shprung Date: Wed, 18 Dec 2024 10:57:38 -0500 Subject: Convert to submodule --- .README.old | 15 +++++++++++++++ .gitignore | 3 --- Info.plist | 14 ++++++++++++++ Makefile | 55 ----------------------------------------------------- README | 15 --------------- README.md | 1 + config.mk | 15 +++++++++++++++ icon.png | Bin 0 -> 1617 bytes src/Info.plist | 14 -------------- src/icon.png | Bin 1617 -> 0 bytes src/index-pages.sh | 43 +++++++++++++++++++++++++++++++++++++++++ src/index.sh | 43 ----------------------------------------- 12 files changed, 88 insertions(+), 130 deletions(-) create mode 100644 .README.old delete mode 100644 .gitignore create mode 100644 Info.plist delete mode 100644 Makefile delete mode 100644 README create mode 100644 README.md create mode 100644 config.mk create mode 100644 icon.png delete mode 100644 src/Info.plist delete mode 100644 src/icon.png create mode 100755 src/index-pages.sh delete mode 100755 src/index.sh diff --git a/.README.old b/.README.old new file mode 100644 index 0000000..e2d9414 --- /dev/null +++ b/.README.old @@ -0,0 +1,15 @@ +Here is a script and a Makefile for generating a GNU Coding Standards docset for Dash. The script is loosely based on benzado's script for GNU Make https://github.com/benzado/gnu-make-dash-docset. + +- GNU Coding Standards: https://savannah.gnu.org/projects/gnustandards +- Dash: https://kapeli.com/dash + +To generate a docset from the latest edition of the GNU Coding Standards, simply +execute `make` from the same directory as this README file. The latest edition +will be downloaded from www.gnu.org and packaged appropriately. + +Requirements: + +- any POSIX-compliant shell +- curl +- make +- sqlite3 diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 6080897..0000000 --- a/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/GNU_Coding_Standards.docset -/GNU_Coding_Standards.tgz -/tmp diff --git a/Info.plist b/Info.plist new file mode 100644 index 0000000..36517aa --- /dev/null +++ b/Info.plist @@ -0,0 +1,14 @@ + + + + + CFBundleIdentifier + gnucodingstandards + CFBundleName + GNU Coding Standards + DocSetPlatformFamily + gnustandards + isDashDocset + + + diff --git a/Makefile b/Makefile deleted file mode 100644 index 5c3be74..0000000 --- a/Makefile +++ /dev/null @@ -1,55 +0,0 @@ -DOCSET_NAME = GNU_Coding_Standards - -DOCSET_DIR = $(DOCSET_NAME).docset -CONTENTS_DIR = $(DOCSET_DIR)/Contents -RESOURCES_DIR = $(CONTENTS_DIR)/Resources -DOCUMENTS_DIR = $(RESOURCES_DIR)/Documents - -INFO_PLIST_FILE = $(CONTENTS_DIR)/Info.plist -INDEX_FILE = $(RESOURCES_DIR)/docSet.dsidx -ICON_FILE = $(DOCSET_DIR)/icon.png -ARCHIVE_FILE = $(DOCSET_NAME).tgz - -MANUAL_URL = https://www.gnu.org/prep/standards/standards.html_node.tar.gz -MANUAL_FILE = tmp/standards.html_node.tar.gz - -DOCSET = $(INFO_PLIST_FILE) $(INDEX_FILE) $(ICON_FILE) - -all: $(DOCSET) - -archive: $(ARCHIVE_FILE) - -clean: - rm -rf $(DOCSET_DIR) $(ARCHIVE_FILE) - -tmp: - mkdir -p $@ - -$(ARCHIVE_FILE): $(DOCSET) - tar --exclude='.DS_Store' -czf $@ $(DOCSET_DIR) - -$(MANUAL_FILE): tmp - curl -o $@ $(MANUAL_URL) - -$(DOCSET_DIR): - mkdir -p $@ - -$(CONTENTS_DIR): $(DOCSET_DIR) - mkdir -p $@ - -$(RESOURCES_DIR): $(CONTENTS_DIR) - mkdir -p $@ - -$(DOCUMENTS_DIR): $(RESOURCES_DIR) $(MANUAL_FILE) - mkdir -p $@ - tar -x -z -f $(MANUAL_FILE) -C $@ - -$(INFO_PLIST_FILE): src/Info.plist $(CONTENTS_DIR) - cp src/Info.plist $@ - -$(INDEX_FILE): src/index.sh $(DOCUMENTS_DIR) - rm -f $@ - src/index.sh $@ $(DOCUMENTS_DIR)/*.html - -$(ICON_FILE): src/icon.png $(DOCSET_DIR) - cp src/icon.png $@ diff --git a/README b/README deleted file mode 100644 index e2d9414..0000000 --- a/README +++ /dev/null @@ -1,15 +0,0 @@ -Here is a script and a Makefile for generating a GNU Coding Standards docset for Dash. The script is loosely based on benzado's script for GNU Make https://github.com/benzado/gnu-make-dash-docset. - -- GNU Coding Standards: https://savannah.gnu.org/projects/gnustandards -- Dash: https://kapeli.com/dash - -To generate a docset from the latest edition of the GNU Coding Standards, simply -execute `make` from the same directory as this README file. The latest edition -will be downloaded from www.gnu.org and packaged appropriately. - -Requirements: - -- any POSIX-compliant shell -- curl -- make -- sqlite3 diff --git a/README.md b/README.md new file mode 100644 index 0000000..42e8d61 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +This docset is now built using [dash-docset-builder](https://github.com/lshprung/dash-docset-builder) diff --git a/config.mk b/config.mk new file mode 100644 index 0000000..c060bad --- /dev/null +++ b/config.mk @@ -0,0 +1,15 @@ +SRC_ICON_FILE=$(SOURCE_DIR)/icon.png + +MANUAL_URL = https://www.gnu.org/prep/standards/standards.html_node.tar.gz +MANUAL_FILE = tmp/standards.html_node.tar.gz + +$(MANUAL_FILE): tmp + curl -o $@ $(MANUAL_URL) + +$(DOCUMENTS_DIR): $(RESOURCES_DIR) $(MANUAL_FILE) + mkdir -p $@ + tar -x -z -f $(MANUAL_FILE) -C $@ + +$(INDEX_FILE): $(SOURCE_DIR)/src/index-pages.sh $(DOCUMENTS_DIR) + rm -f $@ + $(SOURCE_DIR)/src/index-pages.sh $@ $(DOCUMENTS_DIR)/*.html diff --git a/icon.png b/icon.png new file mode 100644 index 0000000..9b18522 Binary files /dev/null and b/icon.png differ diff --git a/src/Info.plist b/src/Info.plist deleted file mode 100644 index 36517aa..0000000 --- a/src/Info.plist +++ /dev/null @@ -1,14 +0,0 @@ - - - - - CFBundleIdentifier - gnucodingstandards - CFBundleName - GNU Coding Standards - DocSetPlatformFamily - gnustandards - isDashDocset - - - diff --git a/src/icon.png b/src/icon.png deleted file mode 100644 index 9b18522..0000000 Binary files a/src/icon.png and /dev/null differ diff --git a/src/index-pages.sh b/src/index-pages.sh new file mode 100755 index 0000000..d6b4c88 --- /dev/null +++ b/src/index-pages.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env sh + +# shellcheck source=../../../scripts/create_table.sh +. "$(dirname "$0")"/../../../scripts/create_table.sh +# shellcheck source=../../../scripts/get_title.sh +. "$(dirname "$0")"/../../../scripts/get_title.sh +# shellcheck source=../../../scripts/insert.sh +. "$(dirname "$0")"/../../../scripts/insert.sh + +DB_PATH="$1" +shift + +#get_title() { +# FILE="$1" +# +# PATTERN=".*\(GNU Coding Standards\).*" +# +# #Find pattern in file +# grep -Eo "$PATTERN" "$FILE" | +# #Remove tag +# sed 's/<[^>]*>//g' | \ +# #Remove '(automake)' +# sed 's/(GNU Coding Standards)//g' | \ +# #Remove trailing space +# sed 's/[ ]*$//g' | \ +# #Replace '&' with '&' +# sed 's/&/&/g' +#} + +insert_pages() { + # Get title and insert into table for each html file + while [ -n "$1" ]; do + unset PAGE_NAME + PAGE_NAME="$(get_title "$1" | sed 's/(GNU Coding Standards)//g')" + if [ -n "$PAGE_NAME" ]; then + insert "$DB_PATH" "$PAGE_NAME" "Guide" "$(basename "$1")" + fi + shift + done +} + +create_table "$DB_PATH" +insert_pages "$@" diff --git a/src/index.sh b/src/index.sh deleted file mode 100755 index 75f20a5..0000000 --- a/src/index.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env sh - -DB_PATH="$1" -shift - -get_title() { - FILE="$1" - - PATTERN=".*\(GNU Coding Standards\).*" - - #Find pattern in file - grep -Eo "$PATTERN" "$FILE" | - #Remove tag - sed 's/<[^>]*>//g' | \ - #Remove '(automake)' - sed 's/(GNU Coding Standards)//g' | \ - #Remove trailing space - sed 's/[ ]*$//g' | \ - #Replace '&' with '&' - sed 's/&/&/g' -} - -insert() { - NAME="$1" - TYPE="$2" - PAGE_PATH="$3" - - sqlite3 "$DB_PATH" "INSERT INTO searchIndex(name, type, path) VALUES (\"$NAME\",\"$TYPE\",\"$PAGE_PATH\");" -} - -# 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 - PAGE_NAME="$(get_title "$1")" - if [ -n "$PAGE_NAME" ]; then - insert "$PAGE_NAME" "Guide" "$(basename "$1")" - fi - shift -done -- cgit