From: Simon Ruderich Date: Sun, 10 Mar 2013 21:46:29 +0000 (+0100) Subject: lib.sh: Use `type` instead of `which`. X-Git-Url: https://ruderich.org/simon/gitweb/?a=commitdiff_plain;ds=inline;h=7fe0556786e569f981dfb20ba0ac9c74983e7ed0;p=config%2Fdotfiles.git lib.sh: Use `type` instead of `which`. `type` is more portable. Also remove the old `which` tests. --- diff --git a/lib.sh b/lib.sh index 95c2fdf..d150778 100644 --- a/lib.sh +++ b/lib.sh @@ -23,10 +23,9 @@ unset LS_COLORS -# Check if the given program is installed. Returns 0 if it exists, 1 -# otherwise; so it can be used in if. +# Check if the given program is installed. `type` is portable, `which` is not. installed() { - [ x`which $1 2>&1 | cut -c 1` = x/ ] || return 1 + type "$1" >/dev/null 2>&1 } # Print the current OS. The following OS are supported at the moment: diff --git a/tests/lib.sh.test b/tests/lib.sh.test index 5db26dc..e46e937 100644 --- a/tests/lib.sh.test +++ b/tests/lib.sh.test @@ -18,56 +18,6 @@ . ../lib.sh -# which with proper exit codes and output to stdout. -which() { - if [ $1 = ls ]; then - echo /bin/ls - else - echo no doesnt-exist in /usr/bin /bin /usr/sbin /sbin - return 1 - fi -} -echo stdout which -installed ls && echo ls installed -installed doesnt-exist && echo doesnt-exist installed - -# which with proper exit codes and output to stderr in case of an error. -which() { - if [ $1 = ls ]; then - echo /bin/ls - else - echo no doesnt-exist in /usr/bin /bin /usr/sbin /sbin >&2 - return 1 - fi -} -echo stderr which -installed ls && echo ls installed -installed doesnt-exist && echo doesnt-exist installed - -# which with no proper exit codes and output to stdout in case of an error. -which() { - if [ $1 = ls ]; then - echo /bin/ls - else - echo no doesnt-exist in /usr/bin /bin /usr/sbin /sbin - fi -} -echo stupid which -installed ls && echo ls installed -installed doesnt-exist && echo doesnt-exist installed - -# which with proper exit codes and no output in case of an error. -which() { - if [ $1 = ls ]; then - echo /bin/ls - else - return 1 - fi -} -echo different which -installed ls && echo ls installed -installed doesnt-exist && echo doesnt-exist installed - # Tests for generate(). echo "Simple test file for generate() using m4. diff --git a/tests/lib.sh.test.out b/tests/lib.sh.test.out index 17d7b2c..b16d569 100644 --- a/tests/lib.sh.test.out +++ b/tests/lib.sh.test.out @@ -1,11 +1,3 @@ -stdout which -ls installed -stderr which -ls installed -stupid which -ls installed -different which -ls installed m4: generating 'tmp/test' from 'tmp/test.m4' with options '-DTEST=m4' ################################### # WARNING! DO NOT EDIT THIS FILE! #