Improved the limited SYSTEM_INFO parser
This commit is contained in:
parent
79b9ddf5f6
commit
d55a8a4d0d
@ -59,39 +59,21 @@ refresh-system-info() {
|
||||
INTRO_STATE[hostname]=full
|
||||
else
|
||||
# Parse machine info if available
|
||||
if [ -f /etc/machine-info ]; then
|
||||
if [[ ${INTRO_STATE[MACHINE_INFO]} == present ]]; then
|
||||
# Populate SYSTEM_INFO array as best as possible (this will be missing a _lot_ of fields that hostnamed calculates)
|
||||
while read line; do
|
||||
case $line in
|
||||
PRETTY_HOSTNAME=*)
|
||||
eval "${line/PRETTY_HOSTNAME/SYSTEM_INFO[PrettyHostname]}"
|
||||
local shared_keys=(PrettyHostname IconName Chassis Deployment Location HardwareVendor HardwareModel HardwareVersion)
|
||||
for key val in "${(@kv)MACHINE_INFO}"; do
|
||||
case $key in
|
||||
HardwareSku)
|
||||
SYSTEM_INFO[HardwareSKU]=${MACHINE_INFO[HardwareSku]}
|
||||
;;
|
||||
ICON_NAME=*)
|
||||
eval "${line/ICON_NAME/SYSTEM_INFO[IconName]}"
|
||||
;;
|
||||
CHASSIS=*)
|
||||
eval "${line/CHASSIS/SYSTEM_INFO[Chassis]}"
|
||||
;;
|
||||
DEPLOYMENT=*)
|
||||
eval "${line/DEPLOYMENT/SYSTEM_INFO[Deployment]}"
|
||||
;;
|
||||
LOCATION=*)
|
||||
eval "${line/LOCATION/SYSTEM_INFO[Location]}"
|
||||
;;
|
||||
HARDWARE_VENDOR=*)
|
||||
eval "${line/HARDWARE_VENDOR/SYSTEM_INFO[HardwareVendor]}"
|
||||
;;
|
||||
HARDWARE_MODEL=*)
|
||||
eval "${line/HARDWARE_MODEL/SYSTEM_INFO[HardwareModel]}"
|
||||
;;
|
||||
HARDWARE_SKU=*)
|
||||
eval "${line/HARDWARE_SKU/SYSTEM_INFO[HardwareSKU]}"
|
||||
;;
|
||||
HARDWARE_VERSION=*)
|
||||
eval "${line/HARDWARE_VERSION/SYSTEM_INFO{HardwareVersion]}"
|
||||
*)
|
||||
if [[ ${${key:*shared_keys}:+x} == 'x' ]]; then
|
||||
SYSTEM_INFO[$key]=${MACHINE_INFO[$key]}
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done </etc/machine-info
|
||||
done
|
||||
INTRO_STATE[SYSTEM_INFO]=limited
|
||||
fi
|
||||
# Read current (transient) hostname
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user