#!/bin/sh set -eu usage() { cat <<-'EOF' boop [-m MESSAGE] -- COMMAND... boop -h EOF } help() { cat <<-'EOF' Options: -m MESSAGE text message of the desktop notification (default: COMMAND) -h, --help show this message COMMAND the commands to be executed Examples: Play the positive sound, using the command as message: $ boop echo 123 Fail with the underlying 127 return code with the message "ERROR": $ boop -m ERROR ech 123 EOF } for flag in "$@"; do case "$flag" in --) break ;; --help) usage help exit ;; *) ;; esac done while getopts 'm:h' flag; do case "$flag" in m) MESSAGE="$OPTARG" ;; h) usage help exit ;; *) usage >&2 exit 2 ;; esac done shift $((OPTIND - 1)) set +e "$@" STATUS=$? set -e if [ "$STATUS" = 0 ]; then N=0 else N=1 fi CMD="$@" msg -"$N" -bs -D "${MESSAGE:-$CMD}" exit "$STATUS"