81 lines
2.3 KiB
Bash
Executable File
81 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env zsh
|
|
# vi: set ft=zsh tw=80 ts=2
|
|
|
|
function createLaunchDaemon() {
|
|
cat > ${launchDaemonPath} <<- LDAEMON
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version="1.0">
|
|
<dict>
|
|
<key>Label</key>
|
|
<string>${serviceName}</string>
|
|
<key>ProgramArguments</key>
|
|
<array>
|
|
<string>/usr/local/bin/azw</string>
|
|
<string>update-zsh-libraries</string>
|
|
</array>
|
|
<key>StartCalendarInterval</key>
|
|
<dict>
|
|
<key>Hour</key>
|
|
<integer>11</integer>
|
|
<key>Minute</key>
|
|
<integer>22</integer>
|
|
</dict>
|
|
</dict>
|
|
</plist>
|
|
LDAEMON
|
|
chown root:wheel ${launchDaemonPath}
|
|
chmod ugo=rx ${launchDaemonPath}
|
|
}
|
|
|
|
function enableLaunchDaemon() {
|
|
launchctl enable system/${launchDaemonPath%.*}
|
|
launchctl bootstrap system ${launchDaemonPath}
|
|
}
|
|
|
|
function createLaunchdService() {
|
|
local serviceName="de.astzweig.macos.launchdaemons.zsh-library-updater"
|
|
local launchDaemonPath="/Library/LaunchDaemons/${serviceName}.plist"
|
|
[[ -f ${launchDaemonPath} ]] || indicateActivity -- 'Create Launch Daemon' createLaunchDaemon
|
|
indicateActivity -- 'Enable Launch Daemon' enableLaunchDaemon
|
|
}
|
|
|
|
function configure_system() {
|
|
lop -y h1 -- -i 'Install ZSh Library'
|
|
indicateActivity -- 'Install zsh libraries' azw update-zsh-libraries
|
|
createLaunchdService
|
|
}
|
|
|
|
function getExecPrerequisites() {
|
|
cmds=(
|
|
[azw]=''
|
|
[azw-update-zsh-libraries]=''
|
|
)
|
|
}
|
|
|
|
function getUsage() {
|
|
read -r -d '' text <<- USAGE
|
|
Usage:
|
|
$cmdName show-questions [<modkey> <modans>]...
|
|
$cmdName [-v] [-d FILE]
|
|
|
|
Install convenient zsh libraries system-wide for use in zsh scripts.
|
|
|
|
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
|