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
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