#!/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 EMACS_ARGS=(emacs --quick --daemon=spine) # If SPINE_ORG env var is set, override the org file path if [ -n "${SPINE_ORG:-}" ]; then EMACS_ARGS+=(--eval "(setq spine-org-file \"$SPINE_ORG\")") fi 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)'"