#!/usr/bin/env zsh # vi: set ft=zsh tw=80 ts=2 function ensureTRBernsteinCanUpdateSystem() { local username=$1 local sudoersFile='/etc/sudoers.d/allow-softwareupdate-for-all' [[ -f ${sudoersFile} ]] && return cat <<- SUDOERS > "${sudoersFile}" trbernstein ALL=(root) NOPASSWD: /usr/sbin/softwareupdate -irR --user admin SUDOERS chown root:wheel "${sudoersFile}" || return 10 chmod u=rw,g=r,o= "${sudoersFile}" || return 20 } function configure_system() { lop -y h1 -- -i 'Configure sudoers files' ensurePathOrLogError ${dstDir} 'Could not install binaries.' || return 10 indicateActivity -- "Allow trbernstein user to install updates using softwareupdate" ensureTRBernsteinCanUpdateSystem } function getExecPrerequisites() { cmds=( [cat]='' [chown]='' [chmod]='' ) } function getUsage() { read -r -d '' text <<- USAGE Usage: $cmdName show-questions [ ]... $cmdName [-v] [-d FILE] Add sudo rules to: 1. allow trbernstein user to install updates using softwareupdate Options: -d FILE, --logfile FILE Print log message to logfile instead of stdout. -v, --verbose Be more verbose. ---- $cmdName 0.1.0 Copyright (C) 2022 Rezart Qelibari, Astzweig GmbH & Co. KG License EUPL-1.2. There is NO WARRANTY, to the extent permitted by law. USAGE print -- ${text} } if [[ "${ZSH_EVAL_CONTEXT}" == toplevel ]]; then _DIR="${0:A:h}" test -f "${ASTZWEIG_MACOS_SYSTEM_LIB}" || { echo 'This module requires macos-system library. Please run again with macos-system library provieded as a path in ASTZWEIG_MACOS_SYSTEM_LIB env variable.'; return 10 } source "${ASTZWEIG_MACOS_SYSTEM_LIB}" module_main $0 "$@" fi