xref: /aosp_15_r20/external/autotest/autotest_lib/contrib/servo-summary (revision 9c5db1993ded3edbeafc8092d69fe5de2ee02df7)
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