view unixSoft/bin/em.sh @ 414:1b5d9d370b04

tramp: use bash on a FreeBSD machine tramp appears to be unclear on the concept of portable shell scripting. This is an interim hack until I can figure out what's going on.
author Augie Fackler <raf@durin42.com>
date Sun, 31 Jan 2016 20:37:35 -0500
parents c30d68fbd368
children
line wrap: on
line source

#!/usr/bin/env bash

# desc:
#     Allows stdin to be 'piped' to an emacs server.
#
# options:
#     none
#
# usage:
#     $ echo "hello there" | emacsclientw.sh
#     $ cat ~/.emacs | emacsclientw.sh
#     $ emacsclientw.sh ~/.emacs
#
# author:
#     Phil Jackson (phil@shellarchive.co.uk)

unset DISPLAY

tmp_file="$(mktemp /tmp/emacs.tmp.XXXXX)"
lisp_to_accept_file="(~/unixSoft/emacs/fake-stdin-slurp.el \"${tmp_file}\")"

if [ ! -t 0  ]; then
    cat > "${tmp_file}"

    emacsclient -a emacs -e "${lisp_to_accept_file}" ${@}

    if [ ${?} -ne 0 ]; then
        echo "failed: your input was saved in '${tmp_file}'"
    else
        rm -f "${tmp_file}"
    fi
else
    # nothing from stdin
    emacsclient -n -a emacs ${@}
fi