Improved the limited SYSTEM_INFO parser

This commit is contained in:
Ezri Brimhall 2025-12-17 11:18:25 -07:00
parent 79b9ddf5f6
commit d55a8a4d0d
Signed by: ezri
GPG Key ID: 058A78E5680C6F24

View File

@ -59,39 +59,21 @@ refresh-system-info() {
INTRO_STATE[hostname]=full INTRO_STATE[hostname]=full
else else
# Parse machine info if available # 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) # Populate SYSTEM_INFO array as best as possible (this will be missing a _lot_ of fields that hostnamed calculates)
while read line; do local shared_keys=(PrettyHostname IconName Chassis Deployment Location HardwareVendor HardwareModel HardwareVersion)
case $line in for key val in "${(@kv)MACHINE_INFO}"; do
PRETTY_HOSTNAME=*) case $key in
eval "${line/PRETTY_HOSTNAME/SYSTEM_INFO[PrettyHostname]}" HardwareSku)
SYSTEM_INFO[HardwareSKU]=${MACHINE_INFO[HardwareSku]}
;; ;;
ICON_NAME=*) *)
eval "${line/ICON_NAME/SYSTEM_INFO[IconName]}" if [[ ${${key:*shared_keys}:+x} == 'x' ]]; then
;; SYSTEM_INFO[$key]=${MACHINE_INFO[$key]}
CHASSIS=*) fi
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]}"
;; ;;
esac esac
done </etc/machine-info done
INTRO_STATE[SYSTEM_INFO]=limited INTRO_STATE[SYSTEM_INFO]=limited
fi fi
# Read current (transient) hostname # Read current (transient) hostname