#!/bin/sh
# stagit post-receive script - developed by acidevegas (https://git.acid.vegas/stagit)

URL="git.acid.vegas"
PROTO="https"
CLONE_URL="git://$URL"
COMMIT_LIMIT=100
HTML_DIR="/srv/http"

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
