diff options
author | David Hendricks <dhendrix@chromium.org> | 2013-11-11 18:43:39 -0800 |
---|---|---|
committer | David Hendricks <dhendrix@chromium.org> | 2013-11-12 20:14:23 +0100 |
commit | c5e947ef17d98722d27a67d65a84a28fd5861dbd (patch) | |
tree | 84c8908cdcd4e4501907a7d71f171367c2a00f64 /util/board_status/board_status.sh | |
parent | 7b4a99c66569c74243f44ec7c09f0fd6e5f6802e (diff) | |
download | coreboot-c5e947ef17d98722d27a67d65a84a28fd5861dbd.tar.xz |
rename status-related stuff to board_status
This just moves stuff to be more clear about the purpose of
the script. Other suggestions are welcome.
Change-Id: Ic6095fd4eb347daa5a03eff21b5952d2d42a6bfd
Signed-off-by: David Hendricks <dhendrix@chromium.org>
Reviewed-on: http://review.coreboot.org/4038
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Diffstat (limited to 'util/board_status/board_status.sh')
-rw-r--r-- | util/board_status/board_status.sh | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/util/board_status/board_status.sh b/util/board_status/board_status.sh new file mode 100644 index 0000000000..d2955e0d63 --- /dev/null +++ b/util/board_status/board_status.sh @@ -0,0 +1,137 @@ +#!/bin/sh +# +# This file is part of the coreboot project. +# +# Copyright (C) 2013 Google Inc. +# + +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +OUTDIR="status" + +# Stuff from command-line switches +REMOTE_HOST="" +CLOBBER_OUTPUT=0 +UPLOAD_RESULTS=0 + +show_help() { + echo "Usage: + ${0} <option> + +Options + -h + Show this message. + -c + Clobber output when finished. + -r <host> + Obtain machine information from remote host (using ssh). + -u + Upload results to coreboot.org. +" +} + +# test a command +# +# $1: test command on remote host (0=no, 1=yes) +# $2: command to test +test_cmd() +{ + local rc + + if [ -e "$2" ]; then + return + fi + + if [[ $1 -eq 1 && "$REMOTE_HOST" ]]; then + ssh root@${REMOTE_HOST} which "$2" >/dev/null + rc=$? + else + which "$2" >/dev/null + rc=$? + fi + + if [ $rc -eq 0 ]; then + return + fi + + echo "$2 not found" + exit $EXIT_FAILURE +} + +# run a command +# +# $1: 0 to run command locally, 1 to run remotely if remote host defined +# $2: command +cmd() +{ + if [ -e "$2" ]; then + return + fi + + if [[ $1 -eq 1 && -n "$REMOTE_HOST" ]]; then + ssh root@${REMOTE_HOST} "$2" + else + $2 + fi + + if [ $? -eq 0 ]; then + return + fi + + echo "Failed to run command: $2" + exit $EXIT_FAILURE +} + +while getopts "chr:u" opt; do + case "$opt" in + h) + show_help + exit $EXIT_SUCCESS + ;; + c) + CLOBBER_OUTPUT=1 + ;; + r) + REMOTE_HOST="$OPTARG" + ;; + u) + UPLOAD_RESULTS=1 + ;; + esac +done + +if [ -e "$OUTDIR" ]; then + echo "Output directory exists, aborting." + exit $EXIT_FAILURE +fi + +mkdir "$OUTDIR" + +getrevision="util/board_status/getrevision.sh" +test_cmd 0 $getrevision +touch ${OUTDIR}/revision.txt +printf "Local revision: %s\n" $($getrevision -l) >> ${OUTDIR}/revision.txt +printf "Upstream revision: %s\n" $($getrevision -u) >> ${OUTDIR}/revision.txt +printf "Upstream URL: %s\n" $($getrevision -U)>> ${OUTDIR}/revision.txt +printf "Timestamp: %s\n" $($getrevision -t) >> ${OUTDIR}/revision.txt + +cbfstool_cmd="util/cbfstool/cbfstool" +test_cmd 0 "$cbfstool_cmd" +$cbfstool_cmd build/coreboot.rom extract -n config -f ${OUTDIR}/config.txt + +test_cmd 1 "cbmem" +cmd 1 "cbmem -c" > ${OUTDIR}/coreboot_console.txt +cmd 1 "cbmem -t" > ${OUTDIR}/coreboot_timestamps.txt +cmd 1 "cbmem -C" > ${OUTDIR}/coreboot_coverage.txt + +cmd 1 dmesg > ${OUTDIR}/kernel_log.txt + +#if [ $UPLOAD_RESULTS -eq 1 ]; then +# FIXME: implement this part +#fi + +if [ $CLOBBER_OUTPUT -eq 1 ]; then + rm -rf ${OUTDIR} +fi + +exit $EXIT_SUCCESS |