+ type "$1" >/dev/null 2>&1
+}
+# Get the path of the given program. Thanks to Gilles on [1] (read on
+# 2013-03-10) for the PATH-walking idea. `which` is not portable and `type`
+# has no well-formed output format.
+#
+# [1]: http://unix.stackexchange.com/questions/4988/how-do-i-test-to-see-if-an-application-exists-in-path/4991
+installed_path() {
+ test -z "$1" && return 1
+
+ # Keep IFS change local.
+ (
+ IFS=:
+ # Walk PATH.
+ for directory in $PATH; do
+ if test -x "$directory/$1"; then
+ echo "$directory/$1"
+ return 0
+ fi
+ done
+
+ return 1
+ )
+}
+
+# Print the current OS. The following OS are supported at the moment:
+# - Debian (debian)
+# - Gentoo (gentoo)
+# - Mac OS X (darwin)
+# - Solaris/OpenSolaris (sun)
+# - FreeBSD (freebsd)
+# If an unsupported OS is used an error is printed.
+os() {
+ if test -f /etc/debian_version; then
+ echo debian
+ elif test -f /etc/gentoo-release; then
+ echo gentoo
+ elif test x`uname` = xDarwin; then
+ echo darwin
+ elif test x`uname` = xSunOS; then
+ echo sun
+ elif test x`uname` = xFreeBSD; then
+ echo freebsd
+ else
+ echo unsupported OS! >&2
+ return 1
+ fi