summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouie S <louie@example.com>2023-09-14 14:01:25 -0400
committerLouie S <louie@example.com>2023-09-14 14:01:25 -0400
commitd4bd46635fe9a74bf35812ee5b635af177e74cfc (patch)
treeb8ab0d4d303b4c273b1ad845762f086c0a9540e4
parent1e6a7a7da4e6cae9986b6f8cbb2558df4de8ea42 (diff)
Create packaging for info reader
-rw-r--r--Makefile6
-rw-r--r--info-reader-Makefile83
-rwxr-xr-xsrc/index-page.sh2
-rw-r--r--src/info-reader/Info.plist14
4 files changed, 103 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index f1ac14b..05363ad 100644
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,13 @@
-all: texinfo
+all: texinfo info-reader
texinfo:
$(MAKE) -f texinfo-Makefile
+info-reader:
+ $(MAKE) -f info-reader-Makefile
+
.PHONY: clean
clean:
$(MAKE) clean -f texinfo-Makefile
+ $(MAKE) clean -f info-reader-Makefile
diff --git a/info-reader-Makefile b/info-reader-Makefile
new file mode 100644
index 0000000..8b8c3a7
--- /dev/null
+++ b/info-reader-Makefile
@@ -0,0 +1,83 @@
+DOCSET_NAME = Standalone_Info_Reader
+
+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
+
+SRC_ICON = src/icon.png
+SRC_PLIST = src/info-reader/Info.plist
+PAGE_INDEXING_SCRIPT = src/index-page.sh
+TERM_INDEXING_SCRIPT = src/index-terms.sh
+
+MANUAL_URL = https://www.gnu.org/software/texinfo/manual/info-stnd/info-stnd.html_node.tar.gz
+MANUAL_FILE = tmp/info-stnd.html_node.tar.gz
+
+ERROR_DOCSET_NAME = $(error DOCSET_NAME is unset)
+WARNING_MANUAL_URL = $(warning MANUAL_URL is unset)
+ERROR_MANUAL_FILE = $(error MANUAL_FILE is unset)
+.phony: err warn
+
+ifndef DOCSET_NAME
+err: ; $(ERROR_DOCSET_NAME)
+endif
+
+ifndef MANUAL_FILE
+err: ; $(ERROR_MANUAL_FILE)
+endif
+
+ifndef MANUAL_URL
+warn:
+ $(WARNING_MANUAL_URL)
+ $(MAKE) all
+endif
+
+DOCSET = $(INFO_PLIST_FILE) $(INDEX_FILE)
+ifdef SRC_ICON
+DOCSET += $(ICON_FILE)
+endif
+
+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_PLIST) $(CONTENTS_DIR)
+ cp $(SRC_PLIST) $@
+
+$(INDEX_FILE): $(PAGE_INDEXING_SCRIPT) $(TERM_INDEXING_SCRIPT) $(DOCUMENTS_DIR)
+ rm -f $@
+ $(PAGE_INDEXING_SCRIPT) $@ $(DOCUMENTS_DIR)/*.html
+ $(TERM_INDEXING_SCRIPT) Entry $@ $(DOCUMENTS_DIR)/Index.html
+
+$(ICON_FILE): src/icon.png $(DOCSET_DIR)
+ cp $(SRC_ICON) $@
diff --git a/src/index-page.sh b/src/index-page.sh
index 7a1b60d..ef398af 100755
--- a/src/index-page.sh
+++ b/src/index-page.sh
@@ -13,7 +13,7 @@ get_title() {
pup -p -f "$FILE" 'title text{}' | \
tr -d \\n | \
- sed 's/(GNU[^)]*)$//' | \
+ sed 's/ (GNU[^)]*)$//' | \
sed 's/\"/\"\"/g'
}
diff --git a/src/info-reader/Info.plist b/src/info-reader/Info.plist
new file mode 100644
index 0000000..d2c9d34
--- /dev/null
+++ b/src/info-reader/Info.plist
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleIdentifier</key>
+ <string>standaloneinforeader</string>
+ <key>CFBundleName</key>
+ <string>Standalone Info Reader</string>
+ <key>DocSetPlatformFamily</key>
+ <string>info</string>
+ <key>isDashDocset</key>
+ <true/>
+</dict>
+</plist>