11f5207b7SJohn Levon#!/bin/bash
21f5207b7SJohn Levon
31f5207b7SJohn Levonprint_help()
41f5207b7SJohn Levon{
51f5207b7SJohn Levon    echo "usage: $0 <warning file>"
61f5207b7SJohn Levon    exit 1;
71f5207b7SJohn Levon}
81f5207b7SJohn Levon
91f5207b7SJohn Levonset_title()
101f5207b7SJohn Levon{
111f5207b7SJohn Levon    echo -ne "\033]0;$*\007"
121f5207b7SJohn Levon    echo ========================================
131f5207b7SJohn Levon    echo $*
141f5207b7SJohn Levon    echo ----------------------------------------
151f5207b7SJohn Levon}
161f5207b7SJohn Levon
171f5207b7SJohn Levoncmd_help()
181f5207b7SJohn Levon{
191f5207b7SJohn Levon    echo "n - skips to next message"
201f5207b7SJohn Levon    echo "f - skips to next file"
211f5207b7SJohn Levon    echo "? - print this message again"
221f5207b7SJohn Levon}
231f5207b7SJohn Levon
241f5207b7SJohn Levonsave_thoughts()
251f5207b7SJohn Levon{
261f5207b7SJohn Levon    echo "************"
271f5207b7SJohn Levon    echo $sm_err
281f5207b7SJohn Levon    echo -n "What do you think?:  "
291f5207b7SJohn Levon    read ans
301f5207b7SJohn Levon    if echo $ans | grep ^$ > /dev/null ; then
31c85f09ccSJohn Levon        return
32*6523a3aaSJohn Levon    fi
331f5207b7SJohn Levon
341f5207b7SJohn Levon    #store the result
351f5207b7SJohn Levon    echo $sm_err       >> summary
361f5207b7SJohn Levon    echo $ans       >> summary
371f5207b7SJohn Levon    echo ========== >> summary
381f5207b7SJohn Levon}
391f5207b7SJohn Levon
401f5207b7SJohn Levonif [ "$1" = "--new" ] ; then
411f5207b7SJohn Levon    shift
421f5207b7SJohn Levon    NEW=Y
431f5207b7SJohn Levonfi
441f5207b7SJohn Levon
451f5207b7SJohn Levonfile=$1
461f5207b7SJohn Levonif [ "$file" = "" ] ; then
471f5207b7SJohn Levon    if [ -e err-list ] ; then
481f5207b7SJohn Levon	file="err-list"
491f5207b7SJohn Levon    else
501f5207b7SJohn Levon	print_help
511f5207b7SJohn Levon    fi
521f5207b7SJohn Levonfi
531f5207b7SJohn Levon
541f5207b7SJohn LevonTXT=$(cat $file | uniq -f 2)
551f5207b7SJohn Levon
561f5207b7SJohn LevonIFS='
571f5207b7SJohn Levon'
581f5207b7SJohn Levonfor sm_err in $TXT ; do
591f5207b7SJohn Levon    file=$(echo $sm_err | cut -d ':' -f 1)
601f5207b7SJohn Levon    line=$(echo $sm_err | cut -d ' ' -f 1 | cut -d ':' -f 2)
611f5207b7SJohn Levon
621f5207b7SJohn Levon    if [ "$file" = "$skip_file" ] ; then
631f5207b7SJohn Levon	continue
641f5207b7SJohn Levon    fi
651f5207b7SJohn Levon    skip_file=""
661f5207b7SJohn Levon
671f5207b7SJohn Levon    last=$(echo $sm_err | cut -d ' ' -f 2-)
681f5207b7SJohn Levon    last=$(echo $last | sed -e 's/line .*//')
691f5207b7SJohn Levon
701f5207b7SJohn Levon    if [ "$NEW" = "Y" ] ; then
711f5207b7SJohn Levon	if grep -F "$last" *summary* > /dev/null ; then
721f5207b7SJohn Levon	    echo "skipping $sm_err"
731f5207b7SJohn Levon	    continue
741f5207b7SJohn Levon	fi
751f5207b7SJohn Levon    fi
761f5207b7SJohn Levon
771f5207b7SJohn Levon    set_title $sm_err
781f5207b7SJohn Levon
79*6523a3aaSJohn Levon    #grep -A1 "$file $line" *summary* 2> /dev/null
801f5207b7SJohn Levon    grep -A1 -F "$last" *summary* 2> /dev/null
811f5207b7SJohn Levon
821f5207b7SJohn Levon    ans="?"
831f5207b7SJohn Levon    while echo $ans | grep '?' > /dev/null ; do
841f5207b7SJohn Levon	echo -n "[? for help]: "
851f5207b7SJohn Levon	read ans
861f5207b7SJohn Levon	if echo $ans | grep n > /dev/null ; then
871f5207b7SJohn Levon	    continue 2
881f5207b7SJohn Levon	fi
891f5207b7SJohn Levon	if echo $ans | grep f > /dev/null ; then
901f5207b7SJohn Levon	    skip_file=$file
911f5207b7SJohn Levon	    continue 2
921f5207b7SJohn Levon	fi
931f5207b7SJohn Levon	if echo $ans | grep '?' > /dev/null ; then
941f5207b7SJohn Levon	    cmd_help
951f5207b7SJohn Levon	fi
961f5207b7SJohn Levon    done
971f5207b7SJohn Levon
981f5207b7SJohn Levon    # I have this in my .vimrc
991f5207b7SJohn Levon    # map <C-j> :! echo $sm_err<CR>
1001f5207b7SJohn Levon    export sm_err
1011f5207b7SJohn Levon
1021f5207b7SJohn Levon    vim $file +${line}
1031f5207b7SJohn Levon
1041f5207b7SJohn Levon    save_thoughts
105*6523a3aaSJohn Levondone
1061f5207b7SJohn LevonIFS=
107