#!/bin/sh # # growthplot -- plot the fetchmail project's growth as a function of time # PATH="$PATH:.:./dist-tools"; export PATH tmp=/tmp/fetchmail-growthplot.$$ mkdir $tmp # Get data from the NEWS file timeseries >$tmp/growthplot$$ grep "^[0-9]" $tmp/growthplot$$ >$tmp/growthnumbers$$ grep "^[0-9.]*.[05].0 " $tmp/growthplot$$ >$tmp/growthmajors$$ sed '/^4.2.9/,$d' <$tmp/growthnumbers$$ >$tmp/growthannounce$$ # gnuplot line styles. These occasionally change (like beteween 3.5 and 3.7); # use "echo 'set terminal png; test' | gnuplot | display -" to check. blue_boxes=3 green_crosses=2 cyan_diamonds=37 # Once purple triangles, but we can't do that anymore brown_triangles=23 cat >$tmp/growthimage$$ <lasttotal)) then # Label over curve hanging right, arrow down arrowhead=$((lasttotal+50)) echo "set label '$legend' at $lastday-10, $endy+15" else # Label under curve hanging left, arrow up arrowhead=$((lasttotal-5)) strlen=`python -c "print len('$legend')"` lablen=$((strlen*22)) echo "set label '$legend' at $lastday-$lablen+10, $endy-15" fi echo set arrow \ from $lastday, $endy \ to $lastday, $arrowhead \ head else set -- $legend size=$1 friends=$2 announce=$3 total=$4 days=$5 date=$6 lastday=$days lasttotal=$total fi done ) <$tmp/growthplot$$ >>$tmp/growthimage$$ # OK, now write the major-release labels ( while read version size friends announce total days date do echo "set arrow from $days, $total - 55 to $days, $total - 15 head" echo "set label '$version' at $days - 5, $total - 65" done ) <$tmp/growthmajors$$ >>$tmp/growthimage$$ cat >>$tmp/growthimage$$ <growth.png rm -f $tmp/growth* rmdir $tmp # growthplot ends here