X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=remoteusage.mdwn;h=d70a8683b7fb2d4fcfa9c0fcb357aa93ca28d246;hb=4f01ff1b5ffb62ac4fdd4917799cbe57bd22f825;hp=67bd933540bb41c5cc0ddee9348f10f511e7f2c9;hpb=ca42d0b43dc8b2c42c6e4052d8bb8901dddf0f0b;p=notmuch-wiki diff --git a/remoteusage.mdwn b/remoteusage.mdwn index 67bd933..d70a868 100644 --- a/remoteusage.mdwn +++ b/remoteusage.mdwn @@ -50,7 +50,7 @@ future calls can reuse the socket. SSH_BIN="ssh" USER="example_user" SSH_HOST="example.com" - SOCKET_DIR="/tmp/notmuch_socks" + SOCKET_DIR="/tmp/notmuch_$(id -u)" SSH_SOCKET="${SOCKET_DIR}/ssh.socket" NOTMUCH_REMOTE_BIN="notmuch" DTACH="/usr/bin/dtach" @@ -69,18 +69,8 @@ future calls can reuse the socket. create_socket_dir () { - mkdir "${SOCKET_DIR}" $(id -u) - chmod 700 "${SOCKET_DIR}" - } - - check_create_socket_dir () - { - if ! check_for_socket_dir; then - create_socket_dir || - (echo "Couldn't create socket directory at ${SOCKET_DIR}" >&2 && exit 1) - elif ! check_socket_dir_owner_and_perm; then - (echo "Incorrect permissions at ${SOCKET_DIR}" >&2 && exit 1) - fi + mkdir "${SOCKET_DIR}" + chmod 700 "${SOCKET_DIR}" } check_for_socket () @@ -91,21 +81,29 @@ future calls can reuse the socket. start_socket () { dtach_command="${DTACH} -n ${DTACH_SOCKET} ${SSH_BIN} -M -S ${SSH_SOCKET} ${USER}@${SSH_HOST}" - command -v ${DTACH} &>/dev/null && ${dtach_command} || - echo "${DTACH} not installed" + command -v ${DTACH} &>/dev/null && ${dtach_command} } notmuch_run () { - check_for_socket || (check_create_socket_dir && start_socket) - CMD=$1 - shift + if check_for_socket_dir; then + if check_socket_dir_owner_and_perm; then + if ! check_for_socket; then + start_socket + fi + else echo "Wrong permissions of ${SOCKET_DIR}" >&2 + exit 1 + fi + elif create_socket_dir; then + start_socket + else + exit 1 + fi printf -v ARGS "%q " "$@" - $SSH_BIN -S $SSH_SOCKET $USER@$SSH_HOST $NOTMUCH_REMOTE_BIN ${CMD} ${ARGS} + $SSH_BIN -S $SSH_SOCKET $USER@$SSH_HOST $NOTMUCH_REMOTE_BIN ${ARGS} } - notmuch_run $@ - + notmuch_run $@ Save this to a file, "remote-notmuch.sh", in your path.