mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-07 19:22:14 +09:00
43 lines
959 B
Bash
Executable File
43 lines
959 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
VENV="$HERE/.venv"
|
|
ADDR="${ZENSICAL_DEV_ADDR:-0.0.0.0:8000}"
|
|
LOG="${ZENSICAL_LOG:-/tmp/zensical-serve.log}"
|
|
PORT="${ADDR##*:}"
|
|
|
|
cd "$HERE"
|
|
|
|
ensure_env() {
|
|
if [ ! -x "$VENV/bin/python" ]; then
|
|
python3 -m venv "$VENV"
|
|
"$VENV/bin/python" -m pip install --quiet --upgrade pip
|
|
fi
|
|
"$VENV/bin/python" -m pip install --quiet --require-virtualenv -r "$HERE/requirements.txt"
|
|
}
|
|
|
|
case "${1:-serve}" in
|
|
--bootstrap)
|
|
ensure_env
|
|
;;
|
|
--daemon)
|
|
ensure_env
|
|
if curl -sf -o /dev/null "http://127.0.0.1:${PORT}/" 2>/dev/null; then
|
|
echo "zensical already serving on ${ADDR}"
|
|
exit 0
|
|
fi
|
|
setsid "$VENV/bin/zensical" serve -a "$ADDR" >"$LOG" 2>&1 &
|
|
disown 2>/dev/null || true
|
|
echo "zensical serving on ${ADDR} (logs: ${LOG})"
|
|
;;
|
|
serve)
|
|
ensure_env
|
|
exec "$VENV/bin/zensical" serve -a "$ADDR"
|
|
;;
|
|
*)
|
|
ensure_env
|
|
exec "$VENV/bin/zensical" "$@"
|
|
;;
|
|
esac
|