From: Michael Tremer Date: Fri, 29 Mar 2019 09:52:39 +0000 (+0100) Subject: Add info command X-Git-Tag: 20190329~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f2b32736b1e46eb2c8d77fd730e6c376e7b4e122;p=people%2Fms%2Ffirmware-update.git Add info command This command shows information about the board and the BIOS that is currently running Signed-off-by: Michael Tremer --- diff --git a/src/firmware-update.in b/src/firmware-update.in index 3b7d02d..b635ba4 100644 --- a/src/firmware-update.in +++ b/src/firmware-update.in @@ -22,11 +22,60 @@ PACKAGE_NAME="@PACKAGE_NAME@" PACKAGE_VERSION="@PACKAGE_VERSION@" +read_dmi() { + local what="${1}" + + # Return an error when what is empty + [ -z "${what}" ] && return 2 + + local file="/sys/class/dmi/id/${what}" + + # Read file + if [ -r "${file}" ]; then + printf "%s" "$(<${file})" + return 0 + fi + + # File could not be read + return 1 +} + +board_string() { + printf "%s %s\n" \ + "$(read_dmi "board_vendor")" \ + "$(read_dmi "board_name")" +} + +board_version() { + read_dmi "board_version" +} + +board_serial() { + read_dmi "board_serial" +} + +bios_version() { + read_dmi "bios_version" +} + +bios_date() { + read_dmi "bios_date" +} + main() { local action="${1}" shift case "${action}" in + info) + printf "%-12s: %s\n" "Board" "$(board_string)" + printf "%-12s: %s\n" "HW Version" "$(board_version)" + printf "%-12s: %s\n" "Serial" "$(board_serial)" + printf "%-12s: %s (%s)\n" "BIOS Version" \ + "$(bios_version)" "$(bios_date)" + return 0 + ;; + version) echo "${PACKAGE_NAME}: Version ${PACKAGE_VERSION}" return 0