#!/hint/bash # Copyright (C) 2018 Luke Shumaker # SPDX-License-Identifier: AGPL-3.0-or-later print() { # shellcheck disable=SC2059 printf "$(gettext -- "$1")\\n" "${@:2}" } error() { local msg msg="$(print "${@:2}")" printf '%s: %s\n' "${0##*/}" "$msg" >&2 if (( $1 != 0 )); then exit "$1" fi } in_array() { local needle=$1 local straw for straw in "${@:2}"; do if [[ $needle = "$straw" ]]; then return 0 fi done return 1 } is_sudo() { (( UID == 0 && ${SUDO_UID:-0} != 0 )) } is_root() { (( UID == 0 )) } needs_sudo() { if ! is_sudo; then error 4 "Must be invoked through sudo." fi } needs_root() { if ! is_root; then error 4 "Must be invoked as root." fi }