# Check if the given program is installed. Returns 0 if it exists, 1
# otherwise; so it can be used in if.
installed() {
- which $1 | grep -E '^/' > /dev/null
+ which $1 2>&1 | perl -ne 'if (not m{^/}) { exit 1 }'
}
# Prints the current OS. Supported are Debian (debian), Gentoo (gentoo) and
. ../lib.sh
-# Tests for installed() with hopefully proper exit codes (1 if the program was
-# not found).
+# 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
+ (exit 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
+ (exit 1)
+ fi
+}
+echo stderr which
installed ls && echo ls installed
installed doesnt-exist && echo doesnt-exist installed
-# Simulate BSD `which` like on Mac OS X which doesn't use exit codes.
-function which() {
- echo Mac OS X which for $1 >&2
+# 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
}
-# Tests for installed() without exit codes.
+echo stupid which
installed ls && echo ls installed
installed doesnt-exist && echo doesnt-exist installed
+stdout which
ls installed
-Mac OS X which for ls
+stderr which
+ls installed
+stupid which
ls installed
-Mac OS X which for doesnt-exist
m4: generating 'tmp/test' from 'tmp/test.m4' with options '-DTEST=m4'
###################################
# WARNING! DO NOT EDIT THIS FILE! #