# SPDX-License-Identifier: 0BSD
# /etc/default/ratrun: demo config file, see ratrun(8)

RATRUN_REMINDERS='1h'  # '2h 30m', ...

# Debian-like: check runs for %users + root
RATRUN_USERS='root'
RATRUN_GROUPS='users'

# mailutils-like (you may want to inject a 'sed "s/^~/​~/" |' (that's a ZWSP) here for mailutils <3.13 to disable escapes.
#                 cf. https://www.mail-archive.com/bug-mailutils@gnu.org/msg02238.html):
alias mail='        mail -E "set nonullbodymsg"'
alias mail_noempty='mail -E "unset nullbody"'
# 4.4BSD-like (mail(1) already doesn't complain for empty bodies):
#alias mail_noempty='mail -E'

command -v getent > /dev/null || getent() {
	f="/etc/$1"; shift
	if [ $# -gt 0 ]; then
		grep $(for ent; do echo "-e ^$ent:"; done) "$f"
	else
		cat "$f"
	fi
}


unsuff() {
	unsuff_mul() {
		[ "${val%"$1"}" != "$val" ] && {
			val="${val%"$1"}"
			val=$(( val * $2 ))"$3"
		}
	}

	val="$1"
	# These also agree with ratrun.8
	unsuff_mul mo   4 wk
	unsuff_mul wk   7 d
	unsuff_mul yr 365 d
	unsuff_mul d   24 h
	unsuff_mul h   60 m
	unsuff_mul m   60
	unsuff_mul s    1
	printf '%s ' "$val"
}

resuff() {
	resuff_div() {
		val_s="${val%"$3"}"
		{ [ -z "$3" ] || [ "$val_s" != "$val" ]; } && [ $(( val_s % $2 )) -eq 0 ] && {
			val=$(( val_s / $2 ))"$1"
		}
	}

	val="$1"
	[ "$val" -eq 0 ] && { printf '0%b' "${2:- }"; return; }

	resuff_div s    1
	resuff_div m   60 s
	resuff_div h   60 m
	resuff_div d   24 h
	resuff_div yr 365 d
	resuff_div wk   7 d
	resuff_div mo   4 wk
	printf '%s%b' "$val" "${2:- }"
}
