You will need to have the following items in place:
1. a working notmuch on one computer (let's call that computer
You will need to have the following items in place:
1. a working notmuch on one computer (let's call that computer
server. [Here](http://www.debian-administration.org/articles/152) is a
good page on how to set it up.
server. [Here](http://www.debian-administration.org/articles/152) is a
good page on how to set it up.
if your connection is too slow, this won't be very pleasant to use,
and certainly won't seem transparent.)
if your connection is too slow, this won't be very pleasant to use,
and certainly won't seem transparent.)
2. sets up a running, detached, ssh connection to the server, so that
future calls can reuse the socket.
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 $@
+