From 7fe0556786e569f981dfb20ba0ac9c74983e7ed0 Mon Sep 17 00:00:00 2001 From: Simon Ruderich Date: Sun, 10 Mar 2013 22:46:29 +0100 Subject: [PATCH] lib.sh: Use `type` instead of `which`. `type` is more portable. Also remove the old `which` tests. --- lib.sh | 5 ++--- tests/lib.sh.test | 50 ------------------------------------------- tests/lib.sh.test.out | 8 ------- 3 files changed, 2 insertions(+), 61 deletions(-) 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! # -- 2.43.2