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
 |