mirror of
https://github.com/jimeh/dotfiles.git
synced 2026-02-19 13:46:41 +00:00
58 lines
1.2 KiB
Bash
Executable File
58 lines
1.2 KiB
Bash
Executable File
#! /bin/bash
|
|
|
|
# Config
|
|
SOCKET_DIR="$TMPDIR/emacs-gui-server$(id -u)"
|
|
SOCKET_FILE="$SOCKET_DIR/server"
|
|
|
|
EMACS="emacs -nw"
|
|
EMACSCLIENT="emacsclient"
|
|
|
|
# Set to binaries bundled in Emacs.app if they exists
|
|
if [ -f "/Applications/Emacs.app/Contents/MacOS/Emacs" ]; then
|
|
EMACS="/Applications/Emacs.app/Contents/MacOS/Emacs -nw"
|
|
fi
|
|
if [ -f "/Applications/Emacs.app/Contents/MacOS/bin/emacsclient" ]; then
|
|
EMACSCLIENT="/Applications/Emacs.app/Contents/MacOS/bin/emacsclient"
|
|
fi
|
|
|
|
# Functions
|
|
start() {
|
|
EMACS_GUI_SERVER=1 env "$EMACS" \
|
|
--eval "(setq server-socket-dir \"$SOCKET_DIR\")" --daemon
|
|
}
|
|
|
|
stop() {
|
|
env $EMACSCLIENT -s "$SOCKET_FILE" --eval "(kill-emacs)"
|
|
}
|
|
|
|
status() {
|
|
echo -n 'Emacs GUI Server... '
|
|
! result="$(eval $EMACSCLIENT -s "$SOCKET_FILE" --eval \"\(print \'OK\)\" 2> /dev/null)"
|
|
if [[ $result == "OK" ]]; then
|
|
echo 'RUNNING'
|
|
else
|
|
echo 'STOPPED'
|
|
fi
|
|
}
|
|
|
|
# Command Parsing
|
|
case "$1" in
|
|
start)
|
|
start
|
|
;;
|
|
stop)
|
|
stop
|
|
;;
|
|
status)
|
|
status
|
|
;;
|
|
*)
|
|
echo 'usage: emacs-gui-server [command]'
|
|
echo ''
|
|
echo 'Available commands:'
|
|
echo ' start: Start Emacs GUI Server.'
|
|
echo ' stop: Stop Emacs GUI Server.'
|
|
echo ' status: Show status of Emacs GUI Server.'
|
|
;;
|
|
esac
|