Files
spine/scripts/run
T

38 lines
818 B
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
ROOT_DIR="$(dirname "$SCRIPT_DIR")"
HOST=""
PORT="8080"
if [ $# -ge 1 ] && [ -n "$1" ]; then
ARG="$1"
if [[ "$ARG" == *:* ]]; then
HOST="${ARG%:*}"
PORT="${ARG##*:}"
else
PORT="$ARG"
fi
fi
# Stop any existing spine daemon
emacsclient --socket-name=spine --eval '(kill-emacs)' 2>/dev/null || true
# Build emacs args
EMACS_ARGS=(emacs --quick --daemon=spine)
if [ -n "$HOST" ]; then
EMACS_ARGS+=(--eval "(setq spine-host \"$HOST\")")
fi
EMACS_ARGS+=(--eval "(setq spine-port $PORT)")
EMACS_ARGS+=(--load "$ROOT_DIR/spine.el")
"${EMACS_ARGS[@]}"
DISPLAY_HOST="${HOST:-localhost}"
echo "Spine running at http://${DISPLAY_HOST}:${PORT}/hello"
echo "Stop: emacsclient --socket-name=spine --eval '(kill-emacs)'"