Split hostname and timezone modules
This commit is contained in:
committed by
T. R. Bernstein
parent
f6c33e3c27
commit
376fa36c01
@@ -1,61 +1,22 @@
|
|||||||
#!/usr/bin/env zsh
|
#!/usr/bin/env zsh
|
||||||
# vi: ft=zsh
|
# vi: ft=zsh
|
||||||
|
|
||||||
function getQuestionsPrerequisites() {
|
|
||||||
cmds=(
|
|
||||||
[systemsetup]=''
|
|
||||||
)
|
|
||||||
requireRootPrivileges
|
|
||||||
}
|
|
||||||
|
|
||||||
function getExecPrerequisites() {
|
function getExecPrerequisites() {
|
||||||
cmds=(
|
cmds=(
|
||||||
[osascript]=''
|
[azw]=''
|
||||||
[scutil]=''
|
[azw-set-hostname]=''
|
||||||
[systemsetup]=''
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
function getQuestions() {
|
function getQuestions() {
|
||||||
local timezones
|
|
||||||
timezones="`systemsetup -listtimezones | tail -n +2 | awk '{print $1}' | paste -sd, -`"
|
|
||||||
questions=(
|
questions=(
|
||||||
'i: hostname=What shall the hostname of this host be?'
|
'i: hostname=What shall the hostname of this host be?'
|
||||||
's: timezone=What shall the timezone of this host be? # choose from:'"${timezones};"
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
function quitSystemPreferences() {
|
|
||||||
ps -A -o pid,comm | grep "MacOS/System Settings" | awk '{print "kill -9 " $1}' | /bin/sh
|
|
||||||
}
|
|
||||||
|
|
||||||
function setComputerName() {
|
|
||||||
scutil --set ComputerName "${hostname}"
|
|
||||||
scutil --set HostName "${hostname}"
|
|
||||||
scutil --set LocalHostName "${hostname}"
|
|
||||||
systemsetup -setcomputername "${hostname}"
|
|
||||||
systemsetup -setlocalsubnetname "${hostname}"
|
|
||||||
}
|
|
||||||
|
|
||||||
function configureComputerHostname() {
|
|
||||||
local currentComputerName="`scutil --get ComputerName`"
|
|
||||||
if [[ "${currentComputerName}" != "${hostname}" ]]; then
|
|
||||||
lop -- -i 'Hostname of computer has not been set.' -i "Will set to ${hostname}."
|
|
||||||
indicateActivity -- 'Set computer name' setComputerName
|
|
||||||
else
|
|
||||||
lop -- -i 'Hostname of computer seems to have already been set. Skipping.' -i "Hostname: $currentComputerName"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function configureTimezone(){
|
|
||||||
systemsetup -settimezone "${timezone}" >&! /dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
function configure_system() {
|
function configure_system() {
|
||||||
lop -y h1 -- -i 'Configure System Settings'
|
lop -y h1 -- -i 'Configure System Hostname'
|
||||||
indicateActivity -- 'Quitting System Preferences' quitSystemPreferences
|
azw set-hostname --hostname ${hostname}
|
||||||
configureComputerHostname
|
|
||||||
indicateActivity -- 'Configuring timezone' configureTimezone
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getUsage() {
|
function getUsage() {
|
||||||
@@ -63,13 +24,12 @@ function getUsage() {
|
|||||||
read -r -d '' text <<- USAGE
|
read -r -d '' text <<- USAGE
|
||||||
Usage:
|
Usage:
|
||||||
$cmdName show-questions [<modkey> <modans>]...
|
$cmdName show-questions [<modkey> <modans>]...
|
||||||
$cmdName [-v] [-d FILE] --hostname NAME --timezone ZONE
|
$cmdName [-v] [-d FILE] --hostname NAME
|
||||||
|
|
||||||
Configure host specific settings.
|
Configure hostname.
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
--hostname NAME Set NAME as current host's host name.
|
--hostname NAME Set NAME as current host's host name.
|
||||||
--timezone ZONE Set ZONE as current host's timezone [default: Europe/Berlin].
|
|
||||||
-d FILE, --logfile FILE Print log message to logfile instead of stdout.
|
-d FILE, --logfile FILE Print log message to logfile instead of stdout.
|
||||||
-v, --verbose Be more verbose.
|
-v, --verbose Be more verbose.
|
||||||
----
|
----
|
||||||
|
|||||||
59
modules/host-specific/02-set-timezone.sh
Executable file
59
modules/host-specific/02-set-timezone.sh
Executable file
@@ -0,0 +1,59 @@
|
|||||||
|
#!/usr/bin/env zsh
|
||||||
|
# vi: ft=zsh
|
||||||
|
|
||||||
|
function getQuestionsPrerequisites() {
|
||||||
|
cmds=(
|
||||||
|
[systemsetup]=''
|
||||||
|
)
|
||||||
|
requireRootPrivileges
|
||||||
|
}
|
||||||
|
|
||||||
|
function getExecPrerequisites() {
|
||||||
|
cmds=(
|
||||||
|
[systemsetup]=''
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
function getQuestions() {
|
||||||
|
local timezones
|
||||||
|
timezones="`systemsetup -listtimezones | tail -n +2 | awk '{print $1}' | paste -sd, -`"
|
||||||
|
questions=(
|
||||||
|
's: timezone=What shall the timezone of this host be? # choose from:'"${timezones};"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
function configureTimezone(){
|
||||||
|
systemsetup -settimezone "${timezone}" >&! /dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
function configure_system() {
|
||||||
|
lop -y h1 -- -i 'Configure System Timezone'
|
||||||
|
indicateActivity -- 'Configuring timezone' configureTimezone
|
||||||
|
}
|
||||||
|
|
||||||
|
function getUsage() {
|
||||||
|
local cmdName=$1 text=''
|
||||||
|
read -r -d '' text <<- USAGE
|
||||||
|
Usage:
|
||||||
|
$cmdName show-questions [<modkey> <modans>]...
|
||||||
|
$cmdName [-v] [-d FILE] --hostname NAME --timezone ZONE
|
||||||
|
|
||||||
|
Configure system timezone.
|
||||||
|
|
||||||
|
Options:
|
||||||
|
--timezone ZONE Set ZONE as current host's timezone [default: Europe/Berlin].
|
||||||
|
-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
|
||||||
|
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
|
||||||
Reference in New Issue
Block a user