1 #!/bin/bash
   2 
   3 print_help()
   4 {
   5     echo "usage: $0 <warning file>"
   6     exit 1;
   7 }
   8 
   9 set_title()
  10 {
  11     echo -ne "\033]0;$*\007"
  12     echo ========================================
  13     echo $*
  14     echo ----------------------------------------
  15 }
  16 
  17 cmd_help()
  18 {
  19     echo "n - skips to next message"
  20     echo "f - skips to next file"
  21     echo "? - print this message again"
  22 }
  23 
  24 save_thoughts()
  25 {
  26     echo "************"
  27     echo $sm_err
  28     echo -n "What do you think?:  "
  29     read ans
  30     if echo $ans | grep ^$ > /dev/null ; then
  31         return
  32     fi
  33 
  34     #store the result
  35     echo $sm_err       >> summary
  36     echo $ans       >> summary
  37     echo ========== >> summary
  38 }
  39 
  40 if [ "$1" = "--new" ] ; then
  41     shift
  42     NEW=Y
  43 fi
  44 
  45 file=$1
  46 if [ "$file" = "" ] ; then
  47     if [ -e err-list ] ; then
  48         file="err-list"
  49     else
  50         print_help
  51     fi
  52 fi
  53 
  54 TXT=$(cat $file | uniq -f 2)
  55 
  56 IFS='
  57 '
  58 for sm_err in $TXT ; do
  59     file=$(echo $sm_err | cut -d ':' -f 1)
  60     line=$(echo $sm_err | cut -d ' ' -f 1 | cut -d ':' -f 2)
  61 
  62     if [ "$file" = "$skip_file" ] ; then
  63         continue
  64     fi
  65     skip_file=""
  66 
  67     last=$(echo $sm_err | cut -d ' ' -f 2-)
  68     last=$(echo $last | sed -e 's/line .*//')
  69 
  70     if [ "$NEW" = "Y" ] ; then
  71         if grep -F "$last" *summary* > /dev/null ; then
  72             echo "skipping $sm_err"
  73             continue
  74         fi
  75     fi
  76 
  77     set_title $sm_err
  78 
  79     #grep -A1 "$file $line" *summary* 2> /dev/null
  80     grep -A1 -F "$last" *summary* 2> /dev/null
  81 
  82     ans="?"
  83     while echo $ans | grep '?' > /dev/null ; do
  84         echo -n "[? for help]: "
  85         read ans
  86         if echo $ans | grep n > /dev/null ; then
  87             continue 2
  88         fi
  89         if echo $ans | grep f > /dev/null ; then
  90             skip_file=$file
  91             continue 2
  92         fi
  93         if echo $ans | grep '?' > /dev/null ; then
  94             cmd_help
  95         fi
  96     done
  97 
  98     # I have this in my .vimrc
  99     # map <C-j> :! echo $sm_err<CR>
 100     export sm_err
 101 
 102     vim $file +${line}
 103 
 104     save_thoughts
 105 done
 106 IFS=