-#!/bin/bash
+#!/bin/sh
# Filename: grml-exec-wrapper
# Purpose: simple but smart program execution wrapper
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# License: This file is licensed under the GPL v2 or any later version.
################################################################################
+is_installed() {
+ prog="$1"
+ [ -z "$prog" ] && return 1
+
+ ret=1
+ oifs="$IFS"
+ IFS=:
+ for dir in $PATH; do
+ [ -z "$dir" ] && continue
+ [ -x "$dir/$prog" ] && ret=0 && break
+ done
+
+ IFS="$oifs"
+ unset oifs
+ return "$ret"
+}
+
# use Xdisplay only if present and running under X:
display_info() {
-if type -a Xdialog 1>/dev/null 2>&1 && test -n "$DISPLAY" ; then
+if is_installed Xdialog && test -n "$DISPLAY" ; then
Xdialog --title "grml-exec-wrapper" --msgbox "$1" 0 0 0
else
print "$1">&2
exit 1
fi
-RC='0'
PROG="$1"
# make sure to support 'grml-exec-wrapper sudo wireshark' as well:
*sudo*) PROG="$2" ;;
esac
-if type -a "$PROG" 1>/dev/null 2>&1 ; then
- exec $@
-else
- RC=1
- display_info "Sorry: ${PROG} not available.
+if is_installed "$PROG" ; then
+ exec "$@"
+fi
+
+display_info "Sorry: ${PROG} not available.
Looks like the grml flavour you are using does not ship ${PROG}. :(
apt-get update && apt-cache search ${PROG}
"
-fi
-exit $RC
+exit 1
## END OF FILE #################################################################