#!/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 $XDG_DATA_HOME/msg/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 sound() { play $XDG_DATA_HOME/msg/medium.ogg 2>/dev/null } ACTION_DONE=false while getopts 'X:sS:m:D:bh' flag; do case "$flag" in X) xmpp -m "$OPTARG" eu@euandreh.xyz & ACTION_DONE=true ;; s) sound & ACTION_DONE=true ;; S) echo "$OPTARG" | speak -v pt-BR & ACTION_DONE=true ;; m) echo " " | email -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 sound usage help fi wait