tavoid gettext being a requirement and list optional tools found in version output - tomb - the crypto undertaker
 (HTM) git clone git://parazyd.org/tomb.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 982c7591f2c7dcf3d9d08fb1f1feff87a1e19c09
 (DIR) parent aa35441d696cfdeb9af8506c6bf5cc003e42c522
 (HTM) Author: Jaromil <jaromil@dyne.org>
       Date:   Sun, 16 Nov 2014 11:34:35 +0100
       
       avoid gettext being a requirement and list optional tools found in version output
       
       Diffstat:
         M tomb                                |      37 +++++++++++++++++++------------
       
       1 file changed, 23 insertions(+), 14 deletions(-)
       ---
 (DIR) diff --git a/tomb b/tomb
       t@@ -612,7 +612,7 @@ option_value() {
        # Messaging function with pretty coloring
        function _msg() {
            local msg="$2"
       -    hash gettext && msg="$(gettext -s "$2")"
       +    hash gettext 2>/dev/null && msg="$(gettext -s "$2")"
            for i in $(seq 3 ${#});
            do
                msg=${(S)msg//::$(($i - 2))*::/$*[$i]}
       t@@ -712,19 +712,24 @@ progress() {
        
        }
        
       +_list_optional_tools() {
       +    typeset -a _deps
       +    _deps=(gettext dcfldd wipe mkfs.ext4 steghide e2fsck)
       +    _deps+=(resize2fs tomb-kdb-pbkdf2 qrencode swish-e unoconv)
       +    for d in $_deps; do
       +        _print "`which $d`"
       +    done
       +    return 0
       +}
       +
       +
        # Check program dependencies
        #
        # Tomb depends on system utilities that must be present, and other
        # functionality that can be provided by various programs according to
        # what's available on the system.  If some required commands are
        # missing, bail out.
       -_ensure_dependencies check_bin() {
       -
       -    # The messages system requires gettext
       -    command -v gettext >& - || {
       -        print "Missing required dependency: gettext.  Please install it."
       -        exit 1
       -    }
       +_ensure_dependencies() {
        
            # Check for required programs
            for req in cryptsetup pinentry sudo gpg; do
       t@@ -2661,13 +2666,17 @@ _print "\000"
        _print "System utils:"
        _print "\000"
        cat <<EOF
       - `sudo -V | head -n1`
       - `cryptsetup --version`
       - `pinentry --version`
       - `gpg --version | head -n1` - key forging algorithms (GnuPG symmetric ciphers):
       -`list_gnupg_ciphers`
       +  `sudo -V | head -n1`
       +  `cryptsetup --version`
       +  `pinentry --version`
       +  `gpg --version | head -n1` - key forging algorithms (GnuPG symmetric ciphers):
       +  `list_gnupg_ciphers`
        EOF
       -                return 0
       +_print "\000"
       +_print "Optional utils:"
       +_print "\000"
       +_list_optional_tools version
       +return 0
                    }
                    usage
                    ;;