make_plot.sh 2.6 KB

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