feat: daemon mode with named socket, scripts/run for IP:PORT
This commit is contained in:
Executable
+37
@@ -0,0 +1,37 @@
|
||||
#!/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)'"
|
||||
Reference in New Issue
Block a user