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 continue
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=