#!/usr/bin/env sh # vim: set noet sw=2 ts=2 sts=2: help() { [ 0 -lt $# ] && >&2 echo "$*" >&2 cat <&2 echo 'No INVOCATION_ID set, not running systemd?' fi subject= on= to= from= eval set -- "$(getopt -n "$0" "ht:f:s:aev" "$@")" while [ 0 -lt $# ] do case "$1" in -h) help ;; -s) shift ; subject="$1" ;; -t) shift ; to="$1" ;; -f) shift ; from="$1" ;; -e) on=error ;; -o) on=output ;; -a) on=always ;; --) shift ; break ;; *) help "Unknown option: $1" ;; esac shift done subject="${subject:-timer: $*}" on=${on:-output} to="${to:-${LOGNAME:-$USER}}" from="${from:-${LOGNAME:-$USER}}" "$@" r=$? # should a mail be sent? mm=false case "$on" in always) mm=true ;; error) [ 0 -lt $r ] && mm=true ;; output) journalctl -n1 _SYSTEMD_INVOCATION_ID="$INVOCATION_ID" | grep -sqm1 "\S" && mm=true ;; esac if $mm then journalctl _SYSTEMD_INVOCATION_ID="$INVOCATION_ID" + INVOCATION_ID="$INVOCATION_ID" + USER_INVOCATION_ID="$INVOCATION_ID" | \ mail -s "$subject" -r "$from" -- "$to" || exit 97 fi exit $r