59 lines
1.4 KiB
Bash
Executable File
59 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
CSV=FALSE
|
|
|
|
while getopts "c" name
|
|
do
|
|
case $name in
|
|
c) CSV=TRUE;;
|
|
esac
|
|
done
|
|
shift $(( OPTIND - 1 ))
|
|
|
|
if [ $# -gt 1 ]
|
|
then
|
|
echo "usage: $(basename $0) [ <options> ] [ <filename> ]" >&2
|
|
echo "options: -c for CSV format" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# If the -c option is called, the option index is shifted over once and the
|
|
# value of the option is stored in $FILE. The default behavior is that the sed
|
|
# transform will read from standard input if no argument is provided and $FILE
|
|
# will be empty.
|
|
FILE=$1
|
|
|
|
SED_SCRIPT="
|
|
s/ CHROMEOS_RELEASE_VERSION=[^ ]*//
|
|
s/ BOARD=[^ ]*//
|
|
"
|
|
|
|
if [ $CSV = "TRUE" ]
|
|
then
|
|
echo "Location,Status,Fixed,Comments"
|
|
SED_SCRIPT="
|
|
s/ ...[A-Z]*//
|
|
$SED_SCRIPT
|
|
s/ /,/
|
|
s/$/,,/
|
|
"
|
|
sed "$SED_SCRIPT" $FILE
|
|
|
|
else
|
|
SED_SCRIPT="
|
|
s/^[^ ]* ...[A-Z]* //
|
|
$SED_SCRIPT
|
|
s/is up/servod &/
|
|
s/.*pwr_button:press.*/power button is stuck down/
|
|
s/^\(not running servod\) \(not running brillo\)$/\1, \2/
|
|
s/^not running servod$/up but not running servod, reason unknown/
|
|
s/^servod not configured$/running brillo, BOARD for &/
|
|
s/^servod failed$/servod running, but not working/
|
|
s/^is down/no answer to ping/
|
|
s/^\(not running servod\) \(ssh is down\)$/\1, ping is up, \2/
|
|
"
|
|
sed "$SED_SCRIPT" $FILE | sort | uniq -c |
|
|
awk '{ print ; sum += $1 } END { printf "%7d total\n", sum }' |
|
|
sort | cut -c -72
|
|
fi
|