X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=remoteusage.mdwn;h=e54d155327cf4481957c10534d4353985f44eba6;hb=d38c66d73f4da53ebe05379e5078c7573bd50e75;hp=67bd933540bb41c5cc0ddee9348f10f511e7f2c9;hpb=ca42d0b43dc8b2c42c6e4052d8bb8901dddf0f0b;p=obsolete%2Fnotmuch-wiki diff --git a/remoteusage.mdwn b/remoteusage.mdwn index 67bd933..e54d155 100644 --- a/remoteusage.mdwn +++ b/remoteusage.mdwn @@ -24,7 +24,8 @@ You will need to have the following items in place: that computer "client") 3. `ssh` and `dtach` on your client computer. (TODO: Make dtach -optional, or allow screen or tmux to be used instead.) +optional, or allow screen or tmux to be used instead. +[[Here|remotewrapper]] is a version that does not require dtach.) 4. password-free login (public key authentication) from client to server. [Here](http://www.debian-administration.org/articles/152) is a @@ -50,7 +51,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 +70,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,28 +82,36 @@ 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. Now you can run "remote-notmuch.sh new". You can call the script anything you like. I actually have $HOME/bin/notmuch linked to that script, so I can have transparent -usage. +usage. ##Configure your emacs client##