+++ /dev/null
-#!/bin/sh
-# Filename: grml-exec-wrapper
-# Purpose: simple but smart program execution wrapper
-# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
-# Bug-Reports: see http://grml.org/bugs/
-# License: This file is licensed under the GPL v2 or any later version.
-################################################################################
-
-usage() {
- printf "Usage: $0 <program> [<arguments>]
-
-Available options:
-
- -h | --help display this usage information
- -p <program> check specified argument instead of default args, like:
- $(basename $0) -p aumix xterm -T aumix -e aumix
-"
-}
-
-is_installed() {
- prog="$1"
- [ -z "$prog" ] && return 1
-
- case "${prog}" in
- /*) # deal with absolute-path programs
- [ -x "${prog}" ] && return 0
- return 1 ;;
- esac
-
- 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 is_installed xterm && test -n "$DISPLAY" ; then
- xterm -T 'Sorry :(' -e "dialog --msgbox \"$1\" 0 0"
-else
- printf '%s\n' "$1">&2
-fi
-}
-
-if [ -z "$1" -o "$1" = '-h' -o "$1" = '--help' ] ; then
- usage
- exit 1
-fi
-
-if [ "$1" = '-p' ] ; then
- if [ -z "$2" ] ; then
- usage
- exit 1
- else
- PROG="$2"
- shift ; shift
- fi
-else
- PROG="$1"
- # make sure to support 'grml-exec-wrapper sudo wireshark' as well:
- case $PROG in
- *sudo*) PROG="$2" ;;
- esac
-fi
-
-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}. :(
-
-You can search for ${PROG} executing:
-
-apt-get update && apt-cache search $(basename ${PROG})
- "
-
-exit 1
-
-## END OF FILE #################################################################