citrun

watch C/C++ source code execute
Log | Files | Refs | LICENSE

commit a9d4cd9d919987df3de769759c3d5a0722723762
parent 93df33b321dd9f5af50a605dc1eff6c67a78b459
Author: kyle <kyle@0x30.net>
Date:   Sun, 27 Nov 2016 20:02:46 -0700

src/check: add function, tighten style

Diffstat:
Msrc/check.sh | 77++++++++++++++++++++++++++++++++++++++++++++---------------------------------
1 file changed, 44 insertions(+), 33 deletions(-)

diff --git a/src/check.sh b/src/check.sh @@ -2,19 +2,23 @@ # Script that counts events in citrun.log files. # Tries to be POSIX compatible. # -function err { - echo "$1" +err() { + >2& echo $@ exit 1 } +print_tty() { + if [ -t 1 ]; then + echo $@ + fi +} + args=`getopt o: $*` -if [ $? -ne 0 ] -then +if [ $? -ne 0 ]; then err "Usage: citrun-check [-o output file] [dir]" fi set -- $args -while [ $# -ne 0 ] -do +while [ $# -ne 0 ]; do case "$1" in -o) @@ -25,9 +29,15 @@ do esac done -dir="$1" -[ -z "$1" ] && dir=`pwd` -[ -d $dir ] || err "citrun-check: $dir: directory does not exist" +if [ -z "$1" ]; then + # Directory not found after argument list. + dir=`pwd` +else + dir="$1" +fi +if [ ! -d $dir ]; then + err "citrun-check: $dir: directory does not exist" +fi GREP[0]="Found source file" GREP[1]="Link detected" @@ -63,47 +73,50 @@ FINE[11]="Binary operators" FINE[12]="Errors rewriting source" fine_len=${#FINE[@]} -[ -t 1 ] && echo -n Checking \'$dir\' . +print_tty -n Checking \'$dir\' . + +tmpfile=`mktemp /tmp/citrun_check.XXXXXXXXXX` +trap "rm -f $tmpfile" 0 +find $dir -name citrun.log > $tmpfile + let log_files=0 -for d in `find $dir -name citrun.log` -do - [ -t 1 ] && echo -n . +while IFS= read -r line; do + d="$line" + print_tty -n . let log_files++ let i=0 - while [ $i -lt $desc_len ] - do - tmp=`grep -c "${GREP[$i]}" $d` + while [ $i -lt $desc_len ]; do + tmp=`grep -c "${GREP[$i]}" "$d"` let COUNT[$i]+=tmp let i++ done let i=0 typeset -i tmp - while [ $i -lt $fine_len ] - do - tmp=`awk "\\$0~/${FINE[$i]}/ { sum += \\$2 } END { print sum }" $d` - if [ "$tmp" = "" ] - then + while [ $i -lt $fine_len ]; do + tmp=`awk "\\$0~/${FINE[$i]}/ { sum += \\$2 } END { print sum }" "$d"` + if [ "$tmp" = "" ]; then let i++ continue fi let FINE_COUNT[$i]+=tmp let i++ done -done -[ -t 1 ] && echo done +done < $tmpfile +rm $tmpfile +print_tty "done" -[ $log_files -eq 0 ] && err "No log files found." -[ -t 1 ] && echo +if [ $log_files -eq 0 ]; then + err "No log files found." +fi +print_tty echo Summary: let i=0 -while [ $i -lt $desc_len ] -do - if [ ${COUNT[$i]} -eq 0 ] - then +while [ $i -lt $desc_len ]; do + if [ ${COUNT[$i]} -eq 0 ]; then let i++ continue fi @@ -115,10 +128,8 @@ echo echo Totals: let i=0 -while [ $i -lt $fine_len ] -do - if [ ${FINE_COUNT[$i]} -eq 0 ] - then +while [ $i -lt $fine_len ]; do + if [ ${FINE_COUNT[$i]} -eq 0 ]; then let i++ continue fi