#!/bin/bash # base name of the bench # it reads $1.out # and generates $1.pdf WHAT=$1 bench=$2 settings_file=$3 header="rev " while read line do if [ ! -z '$line' ]; then header="$header \"$line\"" fi done < $settings_file echo $header > $WHAT.out.header cat $WHAT.out >> $WHAT.out.header echo "set title '$WHAT'" > $WHAT.gnuplot echo "set key autotitle columnhead outside " >> $WHAT.gnuplot echo "set xtics rotate 1" >> $WHAT.gnuplot echo "set term pdf color rounded enhanced fontscale 0.35 size 7in,5in" >> $WHAT.gnuplot echo set output "'"$WHAT.pdf"'" >> $WHAT.gnuplot col=`cat $settings_file | wc -l` echo "plot for [col=2:$col+1] '$WHAT.out.header' using 0:col:xticlabels(1) with lines" >> $WHAT.gnuplot echo " " >> $WHAT.gnuplot gnuplot -persist < $WHAT.gnuplot # generate a png file (thumbnail) convert -colors 256 -background white -density 300 -resize 300 -quality 0 $WHAT.pdf -background white -flatten $WHAT.png # clean rm $WHAT.out.header $WHAT.gnuplot # generate html/svg graph echo " " > $WHAT.html cat resources/chart_header.html > $WHAT.html echo 'var customSettings = {"TITLE":"","SUBTITLE":"","XLABEL":"","YLABEL":""};' >> $WHAT.html # 'data' is an array of datasets (i.e. curves), each of which is an object of the form # { # key: , # color: , # values: [{ # r: , # v: # }] # } echo 'var data = [' >> $WHAT.html col=2 while read line do if [ ! -z '$line' ]; then header="$header \"$line\"" echo '{"key":"'$line'","values":[' >> $WHAT.html i=0 while read line2 do if [ ! -z "$line2" ]; then val=`echo $line2 | cut -s -f $col -d ' '` if [ -n "$val" ]; then # skip build failures echo '{"r":'$i',"v":'$val'},' >> $WHAT.html fi fi ((i++)) done < $WHAT.out echo ']},' >> $WHAT.html fi ((col++)) done < $settings_file echo '];' >> $WHAT.html echo 'var changesets = [' >> $WHAT.html while read line2 do if [ ! -z '$line2' ]; then echo '"'`echo $line2 | cut -f 1 -d ' '`'",' >> $WHAT.html fi done < $WHAT.out echo '];' >> $WHAT.html echo 'var changesets_details = [' >> $WHAT.html while read line2 do if [ ! -z '$line2' ]; then num=`echo "$line2" | cut -f 1 -d ' '` comment=`grep ":$num" changesets.txt | cut -f 2 -d '#'` echo '"'"$comment"'",' >> $WHAT.html fi done < $WHAT.out echo '];' >> $WHAT.html echo 'var changesets_count = [' >> $WHAT.html i=0 while read line2 do if [ ! -z '$line2' ]; then echo $i ',' >> $WHAT.html fi ((i++)) done < $WHAT.out echo '];' >> $WHAT.html cat resources/chart_footer.html >> $WHAT.html