diff --git a/.bin/Scripts/hw-info b/.bin/Scripts/hw-info index f4508fa9..98514e3e 100755 --- a/.bin/Scripts/hw-info +++ b/.bin/Scripts/hw-info @@ -15,26 +15,36 @@ function print_in_columns() { printf ' %-18s%s\n' "$label" "$value" } +function print_dmi_value() { + name="$1" + file="/sys/devices/virtual/dmi/id/$2" + value="UNKNOWN" + if [[ -e "$file" ]]; then + value="$(cat "$file")" + fi + print_in_columns "$name: $value" +} + # System echo -e "${BLUE}System Information${CLEAR}" -echo " Vendor: $(cat /sys/devices/virtual/dmi/id/sys_vendor)" -echo " Name: $(cat /sys/devices/virtual/dmi/id/product_name)" -echo " Serial: $(cat /sys/devices/virtual/dmi/id/product_serial)" +print_dmi_value "Vendor" "sys_vendor" +print_dmi_value "Name" "product_name" +print_dmi_value "Serial" "product_serial" echo "" # Motherboard echo -e "${BLUE}Motherboard${CLEAR}" -echo " Vendor: $(cat /sys/devices/virtual/dmi/id/board_vendor)" -echo " Name: $(cat /sys/devices/virtual/dmi/id/board_name)" -echo " Version: $(cat /sys/devices/virtual/dmi/id/board_version)" -echo " Serial: $(cat /sys/devices/virtual/dmi/id/board_serial)" +print_dmi_value "Vendor" "board_vendor" +print_dmi_value "Name" "board_name" +print_dmi_value "Version" "board_version" +print_dmi_value "Serial" "board_serial" echo "" # BIOS echo -e "${BLUE}BIOS${CLEAR}" -echo " Vendor: $(cat /sys/devices/virtual/dmi/id/bios_vendor)" -echo " Version: $(cat /sys/devices/virtual/dmi/id/bios_version)" -echo " Release Date: $(cat /sys/devices/virtual/dmi/id/bios_date)" +print_dmi_value "Vendor" "bios_vendor" +print_dmi_value "Version" "bios_version" +print_dmi_value "Release Date" "bios_date" echo "" # Processor @@ -69,21 +79,25 @@ lspci | grep 'VGA' | sed -r 's/^.*:/ Device: /' \ | sed 's/Intel Corporation/Intel/' \ | sed 's/Generation Core Processor Family/Gen/' \ | sed 's/Integrated Graphics Controller.*/iGPU/' -glxinfo | grep 'OpenGL renderer' | sed -r 's/^.*:/ OpenGL Renderer: /' \ +glxinfo 2>/dev/null | grep 'OpenGL renderer' | sed -r 's/^.*:/ OpenGL Renderer: /' \ | sed 's/Mesa DRI //' echo "" # Audio echo -e "${BLUE}Audio${CLEAR}" while read -r line; do - print_in_columns "$line" -done <<< $(aplay -l | grep '^card' | sed -r 's/.*\[(.*)\].*\[(.*)\].*/\1: \2/') + if [[ "$line" =~ .*no.soundcards.found.* ]]; then + echo " No soundcards found" + else + print_in_columns "$line" + fi +done <<< $(aplay -l 2>&1 | grep -Ei '(^card|no soundcards found)' | sed -r 's/.*\[(.*)\].*\[(.*)\].*/\1: \2/') echo "" # Network echo -e "${BLUE}Network${CLEAR}" lspci | grep -Ei '(ethernet|network|wireless|wifi)' \ - | sed -r 's/.*: (.*) \(.*$/ \1/' + | sed -r 's/.*: (.*)$/ \1/' echo "" # Drives