!/usr/bin/env bash
GUESTBOOK_PATH="guestbook.gmi" # GUESTBOOK relative path
GUESTBOOK_URL="gemini://foxe.flounder.online/scripts/guesbook.gmi" # GUESTBOOK URL
GUESTBOOK_MESSAGES_START_LINE= 7# the line of the GUESTBOOK at which the messages are to be inserted
MAX_MESSAGES= 100 # maximal number of messages in GUESTBOOK
decode_percent_encoding(){
echo "$1" | sed 's@+@ @g;s@%@\\x@g' | xargs -0 printf "%b"
}
if [[ "$QUERY_STRING" != "" ]]; then
message=$(decode_percent_encoding "$QUERY_STRING")
date=$(date +%Y-%m-%d)
tmpfile=$(mktemp)
if (( $(wc -l "$GUESTBOOK_PATH" | cut -d' ' -f1) < GUESTBOOK_MESSAGES_START_LINE + MAX_MESSAGES )); then
cat <(head -n$((GUESTBOOK_MESSAGES_START_LINE - 1)) "$GUESTBOOK_PATH") <(echo "$date - $message") <(tail -n +"$GUESTBOOK_MESSAGES_START_LINE" "$GUESTBOOK_PATH") > "$tmpfile"
cat "$tmpfile" > "$GUESTBOOK_PATH"
printf "30 $GUESTBOOK_URL\r\n"
fi
else
printf "10 Leave a message.\r\n"
fi
/scripts/