From d55a8a4d0d1100f72abdefcbe7155d1ceff5e4bb Mon Sep 17 00:00:00 2001 From: Ezri Brimhall Date: Wed, 17 Dec 2025 11:18:25 -0700 Subject: [PATCH] Improved the limited SYSTEM_INFO parser --- .config/zsh/01-introspection.zsh | 40 +++++++++----------------------- 1 file changed, 11 insertions(+), 29 deletions(-) diff --git a/.config/zsh/01-introspection.zsh b/.config/zsh/01-introspection.zsh index 1c0b7f3..c0b2214 100644 --- a/.config/zsh/01-introspection.zsh +++ b/.config/zsh/01-introspection.zsh @@ -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