Skip to content

Instantly share code, notes, and snippets.

@nicferrier
Created May 31, 2013 22:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nicferrier/5688473 to your computer and use it in GitHub Desktop.
Save nicferrier/5688473 to your computer and use it in GitHub Desktop.
#!/bin/bash
NAME=bouncer
CWD=$(cd $(dirname $0) ; pwd)
EMACSBIN=$HOME/emacs-local/bin/emacs
EMACSCLIENT=$HOME/emacs-local/bin/emacsclient
EMACSD=$HOME/.emacs.$NAME.d
[ -d $EMACSD ] || mkdir $EMACSD
[ -f $EMACSD/init.el ] || echo "(load (setq custom-file \"$EMACSD/customs.el\"))" > $EMACSD/init.el
case "$1" in
start)
$EMACSBIN -Q --daemon=$NAME -l $EMACSD/init.el
# Make sure we're booted up properly
FILE=/tmp/$$.el
cat <<EOF > $FILE
(setq user-init-file "$EMACSD/init.el")
(customize-set-variable 'custom-file "$EMACSD/customs.el")
(customize-set-variable 'package-archives
'(("gnu" . "http://elpa.gnu.org/packages/")
("marmalade" . "http://marmalade-repo.org/packages/")))
(customize-save-customized)
(package-initialize)
(package-refresh-contents)
EOF
$EMACSCLIENT -s /tmp/emacs$UID/$NAME -e "(load \"$FILE\")"
;;
client)
shift
ARGS=$*
if [ "$ARGS" == "" ]
then
$EMACSCLIENT -s /tmp/emacs$UID/$NAME $EMACSD
else
$EMACSCLIENT -s /tmp/emacs$UID/$NAME $ARGS
fi
;;
load)
shift
TOLOAD="$CWD/$1"
$EMACSCLIENT -s /tmp/emacs$UID/$NAME -e "(load \"$TOLOAD\")"
;;
install)
shift
$EMACSCLIENT -s /tmp/emacs$UID/$NAME -e "(package-install (quote $1))"
;;
esac
# End
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment