1*9c5db199SXin Li#!/bin/bash 2*9c5db199SXin Li 3*9c5db199SXin LiCSV=FALSE 4*9c5db199SXin Li 5*9c5db199SXin Liwhile getopts "c" name 6*9c5db199SXin Lido 7*9c5db199SXin Li case $name in 8*9c5db199SXin Li c) CSV=TRUE;; 9*9c5db199SXin Li esac 10*9c5db199SXin Lidone 11*9c5db199SXin Lishift $(( OPTIND - 1 )) 12*9c5db199SXin Li 13*9c5db199SXin Liif [ $# -gt 1 ] 14*9c5db199SXin Lithen 15*9c5db199SXin Li echo "usage: $(basename $0) [ <options> ] [ <filename> ]" >&2 16*9c5db199SXin Li echo "options: -c for CSV format" >&2 17*9c5db199SXin Li exit 1 18*9c5db199SXin Lifi 19*9c5db199SXin Li 20*9c5db199SXin Li# If the -c option is called, the option index is shifted over once and the 21*9c5db199SXin Li# value of the option is stored in $FILE. The default behavior is that the sed 22*9c5db199SXin Li# transform will read from standard input if no argument is provided and $FILE 23*9c5db199SXin Li# will be empty. 24*9c5db199SXin LiFILE=$1 25*9c5db199SXin Li 26*9c5db199SXin LiSED_SCRIPT=" 27*9c5db199SXin Li s/ CHROMEOS_RELEASE_VERSION=[^ ]*// 28*9c5db199SXin Li s/ BOARD=[^ ]*// 29*9c5db199SXin Li " 30*9c5db199SXin Li 31*9c5db199SXin Liif [ $CSV = "TRUE" ] 32*9c5db199SXin Lithen 33*9c5db199SXin Li echo "Location,Status,Fixed,Comments" 34*9c5db199SXin Li SED_SCRIPT=" 35*9c5db199SXin Li s/ ...[A-Z]*// 36*9c5db199SXin Li $SED_SCRIPT 37*9c5db199SXin Li s/ /,/ 38*9c5db199SXin Li s/$/,,/ 39*9c5db199SXin Li " 40*9c5db199SXin Li sed "$SED_SCRIPT" $FILE 41*9c5db199SXin Li 42*9c5db199SXin Lielse 43*9c5db199SXin Li SED_SCRIPT=" 44*9c5db199SXin Li s/^[^ ]* ...[A-Z]* // 45*9c5db199SXin Li $SED_SCRIPT 46*9c5db199SXin Li s/is up/servod &/ 47*9c5db199SXin Li s/.*pwr_button:press.*/power button is stuck down/ 48*9c5db199SXin Li s/^\(not running servod\) \(not running brillo\)$/\1, \2/ 49*9c5db199SXin Li s/^not running servod$/up but not running servod, reason unknown/ 50*9c5db199SXin Li s/^servod not configured$/running brillo, BOARD for &/ 51*9c5db199SXin Li s/^servod failed$/servod running, but not working/ 52*9c5db199SXin Li s/^is down/no answer to ping/ 53*9c5db199SXin Li s/^\(not running servod\) \(ssh is down\)$/\1, ping is up, \2/ 54*9c5db199SXin Li " 55*9c5db199SXin Li sed "$SED_SCRIPT" $FILE | sort | uniq -c | 56*9c5db199SXin Li awk '{ print ; sum += $1 } END { printf "%7d total\n", sum }' | 57*9c5db199SXin Li sort | cut -c -72 58*9c5db199SXin Lifi 59