]> ruderich.org/simon Gitweb - config/dotfiles.git/commitdiff
lib.sh: Fix installed() for which with no output in case of error.
authorSimon Ruderich <simon@ruderich.org>
Sun, 14 Mar 2010 00:13:49 +0000 (01:13 +0100)
committerSimon Ruderich <simon@ruderich.org>
Sun, 14 Mar 2010 00:13:49 +0000 (01:13 +0100)
lib.sh
tests/lib.sh.test
tests/lib.sh.test.out

diff --git a/lib.sh b/lib.sh
index d9b14c50c8c1851ef1542ed9e2cd7ece5e003d3b..1fa3c8fc0fedaea09f27b91769f1f93218a793fb 100644 (file)
--- a/lib.sh
+++ b/lib.sh
@@ -11,7 +11,7 @@ unset LS_COLORS
 # Check if the given program is installed. Returns 0 if it exists, 1
 # otherwise; so it can be used in if.
 installed() {
-    which $1 2>&1 | perl -ne 'if (not m{^/}) { exit 1 }'
+    which $1 2>&1 | perl -e '$_ = <>; if (not m{^/}) { exit 1 }'
 }
 
 # Print the current OS. The following OS are supported at the moment:
index e8d5053be6ebec71118818ad1c3a7505b0787525..3568c47de354f64e4dbfebd24fcf7ead4ee1ecb5 100644 (file)
@@ -41,6 +41,18 @@ 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.
index 7139144dc00d1dc25fd1f8340ef5f3bc35855c0a..17d7b2cd1c5bf5455ed6cdd807152d137ccc5efc 100644 (file)
@@ -4,6 +4,8 @@ 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! #