commit 43a1eafc483e7ff1ad9711bd86788d329fbbad28
parent 46879928b148f37b160cdee7b7562d9b5f1d622f
Author: Jaromil <jaromil@dyne.org>
Date:   Mon,  3 Sep 2012 17:11:15 +0200
fixes to calling mutt binary and optional binaries in general
Diffstat:
4 files changed, 36 insertions(+), 19 deletions(-)
diff --git a/src/jaro b/src/jaro
@@ -36,6 +36,9 @@ CLEANEXIT=1
 CALLMUTT=1
 TMPRAM=0
 
+# global variables for binaries called
+typeset -h rm mkdir mutt
+
 # which command to use when creating dirs
 mkdir="`which mkdir` -m 700 -p"
 # date stamp
@@ -96,9 +99,9 @@ act()    {
     fi
 }
 
-# honor quiet flag as early as possible
-echo "${@}" | grep '\-q' > /dev/null # silent
-if [ "$?" = 0 ]; then QUIET=1; fi
+# honor quiet and debug flags as early as possible
+if [[ ${@} == *-q* ]]; then QUIET=1; fi
+if [[ ${@} == *-D* ]]; then DEBUG=1; fi
 
 
 # what operating system are we in? use os_detect()
@@ -230,9 +233,10 @@ TRAPINT() {
 	else exit 1; fi
 }
 
-
+# binary programs recognition
 check_bin() {
-    # check for required programs
+
+    # required programs
     for req in pinentry fetchmail procmail; do
 	which $req >/dev/null
 	{ test $? != 0 } && {
@@ -242,13 +246,26 @@ check_bin() {
     done
 
     # which wipe command to use
-    which wipe > /dev/null
-    { test $? = 0 } && {
-	rm="wipe -f -s -q -R /dev/urandom"; return 0 }
-    which srm > /dev/null
-    { test $? = 0 } && {
-	rm="srm -m"; return 0 }
-    rm="rm -f"
+    if [ $(which wipe) ]; then
+	rm="wipe -f -s -q -R /dev/urandom"
+    elif [ $(which srm) ]; then
+	rm="srm -m"
+    else
+	rm="rm -f"
+    fi
+    func "Rm binary: $rm"
+
+    # which mutt binary to use
+    if [ $(which mutt-jaro) ]; then
+	mutt="mutt-jaro"
+    elif [ $(which mutt) ]; then
+	mutt="mutt"
+    else
+	error "Cannot find Mutt. Please install it."
+	return 1
+    fi
+    func "Mutt binary: $mutt"
+
     return 0
 }
 
diff --git a/src/zlibs/email b/src/zlibs/email
@@ -315,7 +315,7 @@ EOF
 	    cp /dev/null $tmp
 	    unlink $tmp
 	) &
-	mutt-jaro -F $MUTTDIR/rc -f ${iproto}://${ilogin}@${host}${folder}
+	${=mutt} -F $MUTTDIR/rc	-f ${iproto}://${ilogin}@${host}${folder}
 
     } # DRYRUN
     return $?
diff --git a/src/zlibs/helpers b/src/zlibs/helpers
@@ -31,7 +31,7 @@ autostart() {
 	{ test ! -r $MUTTDIR/rc } \
 	    && { error "Jaro Mail is not yet configured."; return 1 }
 
-	mutt-jaro -F $MUTTDIR/rc ${=muttflags}
+	${=mutt} -F $MUTTDIR/rc ${=muttflags}
 	return $?
     }
 
@@ -43,7 +43,7 @@ autostart() {
     { test $? = 0 } && {
 	notice "Composing message to: ${@}"
 	# its an email, TODO see if we have it in our addressbook
-	mutt-jaro -F $MUTTDIR/rc ${=muttflags} ${=@}
+	${=mutt} -F $MUTTDIR/rc ${=muttflags} ${=@}
 	return 0
     }
 
@@ -51,18 +51,18 @@ autostart() {
     { test -r "$1" } && {
 	# is it a maildir? then open
 	{ maildircheck ${1} } && {
-	    mutt-jaro -F $MUTTDIR/rc ${=muttflags} -f ${1}
+	    ${=mutt} -F $MUTTDIR/rc ${=muttflags} -f ${1}
 	    return 0 }
 	# is it a regular file? then attach it
 	{ test -f "$1" } && {
-	    mutt-jaro -F $MUTTDIR/rc ${=muttflags} -a ${=@}
+	    ${=mutt} -F $MUTTDIR/rc ${=muttflags} -a ${=@}
 	    return 0 }
     }
 
     # or the name of a folder in Jaro Mail
     { test -r "$MAILDIRS/$1" } && {
 	notice "Opening folder ${1}"
-	mutt-jaro -F $MUTTDIR/rc ${=muttflags} -f "$MAILDIRS/${1}"
+	${=mutt} -F $MUTTDIR/rc ${=muttflags} -f "$MAILDIRS/${1}"
 	return 0
     }
 
diff --git a/src/zlibs/search b/src/zlibs/search
@@ -151,7 +151,7 @@ EOF
     if [ $CALLMUTT = 1 ]; then
 
 	if [ $found != 0 ]; then
-	    mutt -F $MUTTDIR/rc -R -f $TMPDIR/search.result.$id
+	    ${=mutt} -F $MUTTDIR/rc -R -f $TMPDIR/search.result.$id
 	    notice "Found $found matches looking for '$expr' in all mail folders"
 	    exitcode=0
 	else error "Nothing found matching '$expr'"; fi