1#!/bin/bash 2# 3# @echo off 4# 5# Parse the Bug List output file (ID State Result Component) 6# 7# Parameters: 8# 9# arg1 - pathname of file with the Bug List 10 11# Includes 12 13. common 14. settings 15 16# ID State Result Component 17# 18# State:=[NEW|RESO|CLOS|ASSI|REJE|NEED] 19# Result:=[CODE|PATC|DOCU|FIXE|INVA] 20# 21# State entries: 22# 23# NEW == NEW 24# RESO == RESOLVED 25# CLOS == CLOSED 26# ASSI == ASSIGNED 27# REJE == REJECTED 28# NEED == NEEDINFO 29# 30# Result entries: 31# 32# FIXE == FIXED 33# INVA == INVALID 34# CODE == CODE_FIX 35# PATC == PATCH_ALREADY_AVAILABLE 36# DOCU == DOCUMENTED 37 38get_summary() 39{ 40# echo "=====================$s0:$s1:$s2:$s3:$s4:$s5:$line" 41 42 ID="$s0" 43 State="$s1" 44 Result= 45 Component= 46 47 if [ "$State" == RESO\ 48 -o "$State" == CLOS\ 49 -o "$State" == REJE ]; then 50 Result="$s2" 51 if [ "x$s4" == x ]; then 52 Component="$s3" 53 else 54 Component="$s3 $s4" 55 fi 56 else 57 if [ "$State" != NEW\ 58 -a "$State" != NEED\ 59 -a "$State" != ASSI ]; then 60 echo "ERROR 0: get_summary, <$State>" 61 CountERR=$[ $CountERR + 1 ] 62 else 63 if [ "x$s3" == x ]; then 64 Component="$s2" 65 else 66 Component="$s2 $s3" 67 fi 68 fi 69 fi 70 71 echo "$ID:$State: Exp $Result:$Component:" 72} 73 74# arg1 - pathname of file with the Bug List 75do_summary() 76{ 77 started= 78 79 OLD_IFS=$IFS 80 IFS=" " 81 82 cat "$1" |\ 83 while [ 1 ] 84 do 85 read s0 s1 s2 s3 s4 s5 line 86 if [ $? -ne 0 ] ; then 87# echo "Number of the table inconsistency errors: CountERR = $CountERR" 88 if [ "$CountERR" != 0 ]; then 89 return 1 90 fi 91 break 92 fi 93 94 if [ "$s1" == bugs -a "$s2" == "found." ]; then 95 if [ "$started" == yes ]; then 96 started=no 97 else 98 started=yes 99 fi 100 elif [ "$started" == yes ]; then 101 get_summary 102 fi 103 done 104 105 ret=$? 106 107 IFS=$OLD_IFS 108 109 if [ $ret -ne 0 ]; then 110 return 1 111 fi 112} 113 114# ############################## MAIN ############################### 115 116PATHNAME="$1" 117UTILSTATUS=0 118SUMMARY= 119CountERR=0 120 121# echo "Parse the Bug List output file:" 122# echo " $PATHNAME" 123 124if [ ! -f "$PATHNAME" ]; then 125 do_exit 1 "It is not file: <$PATHNAME>" 126fi 127 128do_summary "$PATHNAME" 129if [ $? -ne 0 ]; then 130 do_exit 1 "parsebuglist failed" 131else 132 exit 0 133fi 134 135