stagit

- static git page generator
git clone git://git.acid.vegas/stagit.git
Log | Files | Refs | Archive | README | LICENSE

commit edd38e0cc4f1813a78af6b86b2456b1c1b9fdfcc
parent 17b5dc39b098fb9ad30e99320ec35ca400231afe
Author: acidvegas <acid.vegas@acid.vegas>
Date: Wed, 8 Nov 2023 16:56:31 -0500

Removed sourcehut aka sr.ht for banning me (fuck you), improved and fixed errors in helper scripts, etc

Diffstat:
MREADME.md | 39+++++++++++++++++----------------------
Massets/post-receive | 20+++++++++++++++-----
Massets/repo | 39+++++++++++++++++++++++++++------------
Mstagit-index.c | 2+-

4 files changed, 60 insertions(+), 40 deletions(-)

diff --git a/README.md b/README.md
@@ -1,39 +1,34 @@
 # stagit
 > static git page generator
 
-## Information
+#### Information
 This is my personal fork of [stagit](https://codemadness.org/stagit.html) which is running [git.acid.vegas](https://git.acid.vegas/)
 
 ## Dependencies
-- C compiler *(C99)*
-- libc *(tested with OpenBSD, FreeBSD, NetBSD, Linux: glibc & musl)*
 - [libgit2](https://github.com/libgit2/libgit2) *(v0.22+)*
 - [md4c](https://github.com/mity/md4c) *(v0.4.4+)* 
-- POSIX make *(optional)*
 
-## Setup
-```shell
-cd stagit
-make
-sudo make install
-```
+## Features & Issues
+###### Features
+- Markdown rendering to HTML for README files
+- ~~Syntax hilighting~~
+- Repository categories
+- Direct download to repository tar.gz
+- Style changes
+- ~~Raw file viewing~~
 
-**NOTE**: The [/assets/](https://github.com/acidvegas/stagit/tree/master/assets) directory contains various scripts for deployment usage.
-
-###### New Features
-- [X] Markdown rendering to HTML for README files
-- [ ] Syntax hilighting
-- [X] Repository categories
-- [X] Direct download to repository tar.gz
-- [X] Style changes
-- [ ] Raw file viewing *(will tackle this one next commit)*
-
-###### Fixes
+###### Issues
 - [ ] Clickable heading *(h1-h6)* links in README *(md4c does not FULLY transform markdown)*
 - [ ] Top/bottom padding for multi-lined `<code>` blocks 
 - [ ] Missing image references in README files *(md4c does not look in /files/ for the .screens directory)*
+- [ ] Generating html for binary content is pointless. No links at all for these files.
 
-###### Props
+## Props
 - Hiltjo Posthuma *(orignal author of [stagit](https://codemadness.org/git/stagit/))*
 - Larry Burns *([stagit-md](https://github.com/lmburns/stagit-md))*
 - Oscar Benedito *([md4c implementation](https://oscarbenedito.com/blog/2020/08/adding-about-pages-to-stagit/))*
+
+___
+
+###### Mirrors
+[acid.vegas](https://git.acid.vegas/stagit) • [GitHub](https://github.com/acidvegas/stagit) • [GitLab](https://gitlab.com/acidvegas/stagit) • [SuperNETs](https://git.supernets.org/acidvegas/stagit)
diff --git a/assets/post-receive b/assets/post-receive
@@ -7,8 +7,18 @@ CLONE_URL="git://$URL"
 COMMIT_LIMIT=100
 HTML_DIR="/srv/http"
 
-DIR=$PWD
-REPO=$(basename $DIR .git)
-mkdir -p $HTML_DIR/$REPO && cd $HTML_DIR/$REPO && stagit -l $COMMIT_LIMIT -u "$PROTO://$URL/$REPO" $DIR
-ln -sf log.html index.html
-git --git-dir $DIR archive --format=tar.gz -o "$HTML_DIR/$REPO/archive.tar.gz" --prefix="$REPO/" HEAD
+DIR="$PWD"
+REPO=$(basename "$DIR" .git)
+
+command -v stagit >/dev/null 2>&1 || { echo "stagit not found" >&2; exit 1; }
+
+mkdir -p "$HTML_DIR/$REPO" || { echo "Failed to create directory $HTML_DIR/$REPO" >&2; exit 1; }
+
+if cd "$HTML_DIR/$REPO"; then
+  stagit -l "$COMMIT_LIMIT" -u "$PROTO://$URL/$REPO" "$DIR" || { echo "stagit failed to generate static pages" >&2; exit 1; }
+  ln -sf log.html index.html
+  git --git-dir="$DIR" archive --format=tar.gz -o "$HTML_DIR/$REPO/archive.tar.gz" --prefix="$REPO/" HEAD || { echo "git archive failed" >&2; exit 1; }
+else
+  echo "Failed to change directory to $HTML_DIR/$REPO" >&2
+  exit 1
+fi
diff --git a/assets/repo b/assets/repo
@@ -1,16 +1,31 @@
 #!/bin/sh
 # git-shell-commands helper for stagit - developed by acidvegas (https://git.acid.vegas/stagit)
-[ ! "$#" = '1' ] && echo "invlid arguments (use -c or -d)" && exit 1
-if [ $1 = '-c' ]; then
-	[ -d $2.git         ] && echo "repository already exists" && exit 1
-	[ ! -f post-receive ] && "missing post-receive script"    && exit 1
-	mkdir $2.git && git init --bare $2.git
-	touch $2.git/git-daemon-export-ok
-	ln /srv/git/git-shell-commands/post-receive $2.git/hooks/post-receive
-	echo "git://git.acid.vegas/$2.git" > $2.git/url
-elif [ $1 = '-d' ]; then
-	[ ! -d $2.git ] && echo "repository does not exist" && exit 1
-	rm -rf $2.git
+
+if [ "$#" -ne 2 ]; then
+	echo "invalid arguments (use -c or -d)" >&2
+	exit 1
+fi
+
+if [ "$1" = '-c' ]; then
+	if [ -d "$2.git" ]; then
+		echo "repository already exists" >&2
+		exit 1
+	fi
+	if [ ! -f post-receive ]; then
+		echo "missing post-receive script" >&2
+		exit 1
+	fi
+	mkdir "$2.git" && git init --bare "$2.git" || exit 1
+	touch "$2.git/git-daemon-export-ok"
+	ln /srv/git/git-shell-commands/post-receive "$2.git/hooks/post-receive" || exit 1
+	echo "git://git.acid.vegas/$2.git" > "$2.git/url"
+elif [ "$1" = '-d' ]; then
+	if [ ! -d "$2.git" ]; then
+		echo "repository does not exist" >&2
+		exit 1
+	fi
+	rm -rf "$2.git"
 else
-	echo "invlid arguments (use -c or -d)" && exit 1
+	echo "invalid arguments (use -c or -d)" >&2
+	exit 1
 fi
diff --git a/stagit-index.c b/stagit-index.c
@@ -83,7 +83,7 @@ void writeheader(FILE *fp) {
 	fputs("<center>\n<img src=\"/assets/acidvegas.png\"><br>\n<img src=\"/assets/mostdangerous.png\"><br><br>\n", fp);
 	fputs("<div class=\"container\">\n\t<center>\n\t<table>\n\t\t<tr><td>\n"
 		"<b>contact</b> : <a href=\"https://discord.gg/BCqRZZR\">discord</a> &bull; <a href=\"ircs://irc.supernets.org/superbowl\">irc</a> &bull; <a href=\"mailto://acid.vegas@acid.vegas\">mail</a> &bull; <a href=\"https://twitter.com/acidvegas\">twitter</a>\n"
-		"<br><b>mirrors</b> : <a href=\"https://github.com/acidvegas\">github</a> &bull; <a href=\"https://gitlab.com/acidvegas\">gitlab</a> &bull; <a href=\"https://git.sr.ht/~acidvegas\">sourcehut</a> &bull; <a href=\"https://git.supernets.org/acidvegas\">supernets</a>\n"
+		"<br><b>mirrors</b> : <a href=\"https://github.com/acidvegas\">github</a> &bull; <a href=\"https://gitlab.com/acidvegas\">gitlab</a> &bull; <a href=\"https://git.supernets.org/acidvegas\">supernets</a>\n"
         "\t\t</td></tr>\n\t</table>\n\t</center>\n</div>\n<br>\n", fp);
 	fputs("<div id=\"content\">\n\t<table id=\"index\">\n\t\t<thead>\n\t\t\t<tr><td>Name</td><td>Description</td><td>Last commit</td></tr>\n\t\t</thead>\n\t\t<tbody>", fp);
 }