#!/bin/sh
# wr - Minimal webring utility
# Licensed under the MIT License.
# This script should not be sourced, make sure to change the string 'wr'
# in the following line to match this file's name
[ 'wr' = "$( basename ${0} )" ] || return 1
# Edit DOMAIN and AUTHOR for your instance
# Make sure that DOMAIN is ONLY the domain of your instance, and without trailing slash
DOMAIN="webring.gumx.cc"
AUTHOR="Ahmed (~gumxcc)"
# Script metadata
SCRIPT=$( basename "$0" )
VMAJOR=0
VMINOR=1
VPATCH=0
HOMEPAGE="https://webring.gumx.cc/"
print_help () {
cat << HELP_TEXT
${SCRIPT} v${VMAJOR}.${VMINOR}.${VPATCH}
Minimal webring utility
Usage:
${SCRIPT} add SITE_URL SITE_TITLE [AUTHOR_NAME]
Add a new entry to the webring
${SCRIPT} [build]
Build the webring
${SCRIPT} -h | --help | help
Display this help message and exit
${SCRIPT} -v | --version | version
Display the script version and exit
Project homepage: <${HOMEPAGE}>
HELP_TEXT
}
print_version () {
VERSION="${VMAJOR}.${VMINOR}.${VPATCH}"
printf '%s Version %s\n' "${SCRIPT}" "${VERSION}"
}
print_error () {
ERROR_MSG=${1:-Unknown error}
printf '%s: %s\n' "${SCRIPT}" "${ERROR_MSG}" >&2
}
build_webring() {
mkdir -p public
printf '' > public/index.html
cat << INDEX_PAGE_TOP > public/index.html
You can style them as you please of course
ENTRY_LINKS
}
if [ -z "${1}" ] || [ "${1}" = "build" ]; then
printf 'Building the webring..'
build_webring
printf ' done\n'
exit 0
fi
ENTRY_URL=''
ENTRY_TITLE=''
ENTRY_AUTHOR=''
case "${1}" in
-h|--help|help)
print_help
exit 0
;;
-v|--version|version)
print_version
exit 0
;;
add)
shift
add_entry "${1}" "${2}" "${3}"
exit 0
;;
*)
print_error "${1}: Invalid argument"
print_help >&2
exit 22
;;
esac
trap "print_error 'Interrupt signal detected, output may be incomplete'" INT