make_plot.sh (2693B)
1 #!/bin/bash 2 3 # base name of the bench 4 # it reads $1.out 5 # and generates $1.pdf 6 WHAT=$1 7 bench=$2 8 settings_file=$3 9 10 header="rev " 11 while read line 12 do 13 if [ ! -z '$line' ]; then 14 header="$header \"$line\"" 15 fi 16 done < $settings_file 17 18 echo $header > $WHAT.out.header 19 cat $WHAT.out >> $WHAT.out.header 20 21 22 echo "set title '$WHAT'" > $WHAT.gnuplot 23 echo "set key autotitle columnhead outside " >> $WHAT.gnuplot 24 echo "set xtics rotate 1" >> $WHAT.gnuplot 25 26 echo "set term pdf color rounded enhanced fontscale 0.35 size 7in,5in" >> $WHAT.gnuplot 27 echo set output "'"$WHAT.pdf"'" >> $WHAT.gnuplot 28 29 col=`cat $settings_file | wc -l` 30 echo "plot for [col=2:$col+1] '$WHAT.out.header' using 0:col:xticlabels(1) with lines" >> $WHAT.gnuplot 31 echo " " >> $WHAT.gnuplot 32 33 gnuplot -persist < $WHAT.gnuplot 34 35 # generate a png file (thumbnail) 36 convert -colors 256 -background white -density 300 -resize 300 -quality 0 $WHAT.pdf -background white -flatten $WHAT.png 37 38 # clean 39 rm $WHAT.out.header $WHAT.gnuplot 40 41 42 # generate html/svg graph 43 44 echo " " > $WHAT.html 45 cat resources/chart_header.html > $WHAT.html 46 echo 'var customSettings = {"TITLE":"","SUBTITLE":"","XLABEL":"","YLABEL":""};' >> $WHAT.html 47 # 'data' is an array of datasets (i.e. curves), each of which is an object of the form 48 # { 49 # key: <name of the curve>, 50 # color: <optional color of the curve>, 51 # values: [{ 52 # r: <revision number>, 53 # v: <GFlops> 54 # }] 55 # } 56 echo 'var data = [' >> $WHAT.html 57 58 col=2 59 while read line 60 do 61 if [ ! -z '$line' ]; then 62 header="$header \"$line\"" 63 echo '{"key":"'$line'","values":[' >> $WHAT.html 64 i=0 65 while read line2 66 do 67 if [ ! -z "$line2" ]; then 68 val=`echo $line2 | cut -s -f $col -d ' '` 69 if [ -n "$val" ]; then # skip build failures 70 echo '{"r":'$i',"v":'$val'},' >> $WHAT.html 71 fi 72 fi 73 ((i++)) 74 done < $WHAT.out 75 echo ']},' >> $WHAT.html 76 fi 77 ((col++)) 78 done < $settings_file 79 echo '];' >> $WHAT.html 80 81 echo 'var changesets = [' >> $WHAT.html 82 while read line2 83 do 84 if [ ! -z '$line2' ]; then 85 echo '"'`echo $line2 | cut -f 1 -d ' '`'",' >> $WHAT.html 86 fi 87 done < $WHAT.out 88 echo '];' >> $WHAT.html 89 90 echo 'var changesets_details = [' >> $WHAT.html 91 while read line2 92 do 93 if [ ! -z '$line2' ]; then 94 num=`echo "$line2" | cut -f 1 -d ' '` 95 comment=`grep ":$num" changesets.txt | cut -f 2 -d '#'` 96 echo '"'"$comment"'",' >> $WHAT.html 97 fi 98 done < $WHAT.out 99 echo '];' >> $WHAT.html 100 101 echo 'var changesets_count = [' >> $WHAT.html 102 i=0 103 while read line2 104 do 105 if [ ! -z '$line2' ]; then 106 echo $i ',' >> $WHAT.html 107 fi 108 ((i++)) 109 done < $WHAT.out 110 echo '];' >> $WHAT.html 111 112 cat resources/chart_footer.html >> $WHAT.html