Thanks for the discussion so far. after sending this email I continue tomorrow with the others... Matt Armstrong <marmstrong@google.com> writes: > Neat. Basics of it look correct to me. Personally, I'd abandon most of > these environment variables and edit the script directly, but that goes > against your stated goal. In this case yes... the goal being me having a chance to drop one of my scripts from the pool... > Other comments below. > >> >> if [ "${NOTMUCH_REMOTE_XTRACE_FILE-}" ]; then > > In bash, I often see people favoring this style: > > if [[ -n ${NOTMUCH_REMOTE_XTRACE_FILE-} ]]; then That is a non-mandatory posix shell feature, works in bash, ksh, zsh (and possibly in busybox shell), but not in dash. to share code snippets between all shells rather use more portable syntax (and my personal preference is `if test "${var-}"\n then ... fi`)) ( as as side note, in some systems there is /bin/[[ -- that is just plain stupid !!! ;/ it cannot possibly handle the syntax builtin [[ accepts ) >> exec 6>>"$NOTMUCH_REMOTE_XTRACE_FILE" >> BASH_XTRACEFD=6 >> echo -- >&6 >> set -x >> env >&6 > > This BASH_XTRACEFD stuff is nice, and the technique is new to me. Is > there a way to close the trace file descriptor so it isn't available to > the ssh command? Maybe something like this works? > > exec 6>&- "$NOTMUCH_REMOTE_SSH_COMMAND" $NOTMUCH_REMOTE_SSH_ARGS \ > "$NOTMUCH_REMOTE_HOST" $NOTMUCH_REMOTE_COMMAND $ARGS that is good question. in case of ssh having 6 is not a problem -- the fd 6 is not available in remote host (and it is just for investigating problems) . but for the interested, something like this would work here (just that there is extra x in the output ;/): x () { exec 6>&-; "$@"; } x exec ... > > (though that only needs to happen optionally, which makes it tricky). > >> : ${NOTMUCH_REMOTE_SSH_COMMAND:=ssh} >> : ${NOTMUCH_REMOTE_SSH_ARGS=} >> : ${NOTMUCH_REMOTE_HOST:=notmuch} >> : ${NOTMUCH_REMOTE_COMMAND:=notmuch} >> >> printf -v ARGS '%q ' "$@" > > This is the real secret sauce. When I was looking at removing the > extraneous quoting we have in notmuch-show.el, it boiled down to > figuring this out. The web has a lot of people asking how to do this > properly, but very few good answers. ... and the problem with e.g. stack overflow is that without karma one cannot answer there...