tusing zsh hash function instead of command -v to check for bins in path, using plain 2>/dev/null redirection everywhere - tomb - the crypto undertaker
 (HTM) git clone git://parazyd.org/tomb.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit da46cbcd3121a0d0e3a86d0e8c414ffd160cbfe1
 (DIR) parent 982c7591f2c7dcf3d9d08fb1f1feff87a1e19c09
 (HTM) Author: Jaromil <jaromil@dyne.org>
       Date:   Sun, 16 Nov 2014 11:37:30 +0100
       
       using zsh hash function instead of command -v to check for bins in path, using plain 2>/dev/null redirection everywhere
       
       Diffstat:
         M tomb                                |      26 +++++++++++++-------------
       
       1 file changed, 13 insertions(+), 13 deletions(-)
       ---
 (DIR) diff --git a/tomb b/tomb
       t@@ -733,7 +733,7 @@ _ensure_dependencies() {
        
            # Check for required programs
            for req in cryptsetup pinentry sudo gpg; do
       -        command -v $req >& - || {
       +        hash $req 2>/dev/null || {
                    _failure "Missing required dependency ::1 command::.  Please install it." $req }
            done
        
       t@@ -741,24 +741,24 @@ _ensure_dependencies() {
            path+=(/sbin /usr/sbin) # zsh magic
        
            # Which dd command to use
       -    command -v dcfldd >& - && DD=(dcfldd statusinterval=1)
       +    hash dcfldd 2>/dev/null && DD=(dcfldd statusinterval=1)
        
            # Which wipe command to use
       -    command -v wipe >& - && WIPE=(wipe -f -s)
       +    hash wipe 2>/dev/null && WIPE=(wipe -f -s)
        
            # Check for filesystem creation programs
       -    command -v mkfs.ext4 >& - && MKFS=(mkfs.ext4 -q -F -j -L)
       +    hash mkfs.ext4 2>/dev/null && MKFS=(mkfs.ext4 -q -F -j -L)
        
            # Check for steghide
       -    command -v steghide >& - || STEGHIDE=0
       +    hash steghide 2>/dev/null || STEGHIDE=0
            # Check for resize
       -    command -v e2fsck resize2fs >& - || RESIZER=0
       +    hash e2fsck resize2fs 2>/dev/null || RESIZER=0
            # Check for KDF auxiliary tools
       -    command -v tomb-kdb-pbkdf2 >& - || KDF=0
       +    hash tomb-kdb-pbkdf2 2>/dev/null || KDF=0
            # Check for Swish-E file content indexer
       -    command -v swish-e >& - || SWISH=0
       +    hash swish-e 2>/dev/null || SWISH=0
            # Check for QREncode for paper backups of keys
       -    command -v qrencode >& - || QRENCODE=0
       +    hash qrencode 2>/dev/null || QRENCODE=0
        }
        
        # }}} - Commandline interaction
       t@@ -1109,7 +1109,7 @@ EOF
        # prints an array of ciphers available in gnupg (to encrypt keys)
        list_gnupg_ciphers() {
            # prints an error if GnuPG is not found
       -    which gpg >& - || _failure "gpg (GnuPG) is not found, Tomb cannot function without it."
       +    which gpg 2>/dev/null || _failure "gpg (GnuPG) is not found, Tomb cannot function without it."
        
            ciphers=(`gpg --version | awk '
        BEGIN { ciphers=0 }
       t@@ -2011,7 +2011,7 @@ BEGIN { main="" }
        # index files in all tombs for search
        # $1 is optional, to specify a tomb
        index_tombs() {
       -    { command -v updatedb >& - } || {
       +    { hash updatedb 2>/dev/null } || {
                _failure "Cannot index tombs on this system: updatedb (mlocate) not installed." }
        
            updatedbver=`updatedb --version | grep '^updatedb'`
       t@@ -2033,7 +2033,7 @@ index_tombs() {
            _success "Creating and updating search indexes."
        
            # start the LibreOffice document converter if installed
       -    { command -v unoconv >& - } && {
       +    { hash unoconv 2>/dev/null } && {
                unoconv -l 2>/dev/null &
                _verbose "unoconv listener launched."
                sleep 1 }
       t@@ -2131,7 +2131,7 @@ EOF
            done
        }
        search_tombs() {
       -    { command -v locate >& - } || {
       +    { hash locate 2>/dev/null } || {
                _failure "Cannot index tombs on this system: updatedb (mlocate) not installed." }
        
            updatedbver=`updatedb --version | grep '^updatedb'`