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
 |