repositories / bugabinga.net
bugabinga.net
personal infrastructure for bugabinga!
owned by admin
scripts/local/generate.sh
Raw#!/usr/bin/env bash
set -euo pipefail
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
usage() {
echo "usage: generate.sh nugu | pufferpanel-mail | zot-user USER | basic-auth-user USER" >&2
exit 2
}
target="${1:-}"
[[ -n "${target}" ]] || usage
shift
case "${target}" in
pufferpanel-mail)
[[ "$#" -eq 0 ]] || usage
bash "${repo_root}/scripts/local/setup-pufferpanel-mail.sh"
;;
nugu)
[[ "$#" -eq 0 ]] || usage
cd /home/me/Workspace/dotfiles/nugu
just bugabinga-net
install -d "${repo_root}/assets"
cp output/bugabinga.net/nugu.css "${repo_root}/assets/nugu.css"
cp output/bugabinga.net/nugu.json "${repo_root}/assets/nugu.json"
cp output/bugabinga.net/nugu.css "${repo_root}/services/luigit/src/nugu.css"
install -d "${repo_root}/assets/pufferpanel"
cp output/pufferpanel/theme.css "${repo_root}/assets/pufferpanel/theme.css"
# Native tar blobs lack SVG MIME metadata; a typed data URI needs no application patch.
logo="$(base64 --wrap=0 "${repo_root}/assets/bugabinga.min.svg")"
sed "s@url('bugabinga.svg')@url('data:image/svg+xml;base64,${logo}')@g" \
"${repo_root}/services/pufferpanel/theme/branding.css" >>"${repo_root}/assets/pufferpanel/theme.css"
cp "${repo_root}/services/pufferpanel/theme/manifest.json" "${repo_root}/assets/pufferpanel/manifest.json"
cp "${repo_root}/assets/bugabinga.min.svg" "${repo_root}/assets/pufferpanel/bugabinga.svg"
tar --format=ustar --mtime=@0 --owner=0 --group=0 --numeric-owner \
-cf "${repo_root}/assets/pufferpanel/Nugu.tar" -C "${repo_root}/assets/pufferpanel" \
manifest.json theme.css bugabinga.svg
;;
zot-user)
[[ "$#" -ge 1 && "$#" -le 2 ]] || usage
exec "${repo_root}/scripts/local/auth-user.sh" zot "$@"
;;
basic-auth-user)
[[ "$#" -ge 1 && "$#" -le 2 ]] || usage
exec "${repo_root}/scripts/local/auth-user.sh" basic "$@"
;;
*)
echo "unknown generation target: ${target}" >&2
usage
;;
esac