#!/bin/sh set -eu usage() { cat <<-'EOF' Usage: msg -X XMPP_MESSAGE -s -S SOUND_MESSAGE -m EMAIL -D DESKTOP -b msg -h EOF } help() { cat <<-'EOF' Options: -X XMPP_MESSAGE send XMPP using the `xmpp` command -s play ~/Desktop/medium.ogg sound -S SOUND_MESSAGE say SOUND_MESSAGE using `speak` -m EMAIL_SUBJECT send email with EMAIL_SUBJECT and empty body -D DESKTOP_MESSAGE the desktop message for `notify-send` -b print terminal bell -h, --help show this message EOF } for flag in "$@"; do case "$flag" in --) break ;; --help) usage help exit ;; *) ;; esac done ACTION_DONE=false while getopts 'X:sS:m:D:bh' flag; do case "$flag" in X) xmpp -m "$OPTARG" ACTION_DONE=true ;; s) play ~/Desktop/medium.ogg ACTION_DONE=true ;; S) echo "$OPTARG" | speak -v pt-BR ACTION_DONE=true ;; m) echo "" | mail \ -a 'Content-Type: text/plain; charset=UTF-8' \ -a 'From:bot@euandre.org' \ -s "$OPTARG" \ eu@euandre.org ||: ACTION_DONE=true ;; D) notify-send "$OPTARG" ACTION_DONE=true ;; b) printf '\a' ACTION_DONE=true ;; h) usage help exit ;; *) usage >&2 exit 2 ;; esac done if [ "$ACTION_DONE" = false ]; then usage help exit fi