X-Git-Url: https://projects.mako.cc/source/muttjump/blobdiff_plain/0d63c69fb05a5b2e39b0b00fdd87bd820bd24a7a..HEAD:/muttjump diff --git a/muttjump b/muttjump index 14880f6..37dd0c2 100755 --- a/muttjump +++ b/muttjump @@ -3,8 +3,8 @@ # muttjump # -# This script makes mail indexers (like mairix, mu or nmzmail) together with -# mutt more useful. +# This script makes mail indexers (like mairix, mu, nmzmail, or +# notmuch) together with mutt more useful. # # These search engines usually create a virtual maildir containing symbolic # links to the original mails, which can be browsed using mutt. @@ -18,7 +18,7 @@ # # macro generic ,j "push muttjump" "jump to original message" -# one of: mairix, mu, mu-old (mu < 0.7) and nmzmail +# one of: mairix, mairix-git, mu, mu-old (mu < 0.7), nmzmail or notmuch (>0.5) MUTTJUMP_INDEXER=${MUTTJUMP_INDEXER:-} # "limit" or "search" (default) @@ -43,7 +43,7 @@ if ! type MUTTJUMP_SCREEN_WINDOW_NAME_MANGLE >/dev/null 2>&1 ; then fi # Version of GNU screen -# Since 4.01.00devel (commit 98b6b41) backslash for -X handling was altered. +# Since 4.01.00devel (commit 98b6b41) backslash handling for -X was altered. MUTTJUMP_SCREEN_VERSION=${MUTTJUMP_SCREEN_VERSION:-auto} # program paths @@ -51,6 +51,7 @@ MUTT=${MUTT:-mutt} MAIRIX=${MAIRIX:-mairix} MU=${MU:-mu} NMZMAIL=${NMZMAIL:-nmzmail} +NOTMUCH=${NOTMUCH:-notmuch} SCREEN=${SCREEN:-screen} FORMAIL=${FORMAIL:-formail} REFORMAIL=${REFORMAIL:-reformail} @@ -78,6 +79,10 @@ function wc_L () { awk '{ y = length(); if (y > x) x = y } END { print x }' } +# Check if screen is new enough to parse -X (commit 98b6b41) and support +# -Q (commit 8147d08). It (falsely) assumes that screen version > 4.00 +# does this. Distributions that use git versions are likely to also keep +# them up to date. function is_new_screen () { sv=$MUTTJUMP_SCREEN_VERSION if [ "$sv" = auto ] ; then @@ -160,6 +165,9 @@ msgid_clean=$(echo "$msgid" | sed -e 's/^$//') # try to locate path of message using a mail search engine case $MUTTJUMP_INDEXER in + mairix-git) + orig_msgfiles=$($MAIRIX -r "m:$msgid_clean") + ;; mairix) msgid_mairix=$msgid_clean # mairix can't quote special characters (~,/=^) in search words. As a @@ -184,6 +192,9 @@ case $MUTTJUMP_INDEXER in orig_msgfiles=$(find "$nmzmail_results" -type l -exec readlink {} \;) rm -rf "$nmzmail_results" ;; + notmuch) + orig_msgfiles=$($NOTMUCH search --output=files "id:$msgid_clean") + ;; "") die "variable MUTTJUMP_INDEXER not set or empty" ;;