Luigit
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