From ef4c8d8386797b8265765739ac924357a01db67a Mon Sep 17 00:00:00 2001 From: Jesse Rosenthal Date: Thu, 19 Jan 2012 11:13:49 -0500 Subject: [PATCH] Fix up formatting for real. Code indentation after a bullet is not one of markdown's most elegant features. --- remoteusage.mdwn | 80 +++++++++++++++++++++++++----------------------- 1 file changed, 42 insertions(+), 38 deletions(-) diff --git a/remoteusage.mdwn b/remoteusage.mdwn index f50211d..84b7c38 100644 --- a/remoteusage.mdwn +++ b/remoteusage.mdwn @@ -22,11 +22,14 @@ You will need to have the following items in place: 2. a working notmuch emacs interface on another computer (let's call that computer "client") + 3. `ssh` and `dtach` on your client computer. (TODO: Make dtach optional, or allow screen or tmux to be used instead.) + 4. password-free login (public key authentication) from client to server. [Here](http://www.debian-administration.org/articles/152) is a good page on how to set it up. + 5. a reasonably fast connection. (This isn't really *neccessary*, but if your connection is too slow, this won't be very pleasant to use, and certainly won't seem transparent.) @@ -38,47 +41,48 @@ Now we will need to write a simple shell script that does two things: 1. replaces the call to the notmuch binary with a call to notmuch over ssh. + 2. sets up a running, detached, ssh connection to the server, so that future calls can reuse the socket. - #!/usr/bin/env bash - - SSH_BIN="ssh" - USER="example_user" - SSH_HOST="example.com" - SSH_SOCKET="/tmp/notmuch_ssh.socket" - NOTMUCH_REMOTE_BIN="notmuch" - DTACH="dtach" - DTACH_SOCKET="/tmp/notmuch_dtach.socket" - - check_for_socket () - { - [ -S "${SSH_SOCKET}" ] - } - - check_if_socket_alive () - { - timeout 1 $SSH_BIN -S ${SSH_SOCKET} $USER@$SSH_HOST true > /dev/null - } - - 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" - } - - notmuch_run () - { - check_for_socket || start_socket - CMD=$1 - shift - printf -v ARGS "%q " "$@" - $SSH_BIN -S $SSH_SOCKET $USER@$SSH_HOST $NOTMUCH_REMOTE_BIN ${CMD} ${ARGS} - } - - notmuch_run $@ - + #!/usr/bin/env bash + + SSH_BIN="ssh" + USER="example_user" + SSH_HOST="example.com" + SSH_SOCKET="/tmp/notmuch_ssh.socket" + NOTMUCH_REMOTE_BIN="notmuch" + DTACH="dtach" + DTACH_SOCKET="/tmp/notmuch_dtach.socket" + + check_for_socket () + { + [ -S "${SSH_SOCKET}" ] + } + + check_if_socket_alive () + { + timeout 1 $SSH_BIN -S ${SSH_SOCKET} $USER@$SSH_HOST true > /dev/null + } + + 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" + } + + notmuch_run () + { + check_for_socket || start_socket + CMD=$1 + shift + printf -v ARGS "%q " "$@" + $SSH_BIN -S $SSH_SOCKET $USER@$SSH_HOST $NOTMUCH_REMOTE_BIN ${CMD} ${ARGS} + } + + notmuch_run $@ + Save this to a file, "remote-notmuch.sh", in your path. -- 2.43.0