summaryrefslogtreecommitdiff
path: root/stats.sh
blob: 3bb168e89b1d79b6d16dd19f93387658e778568e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/sh

# Generates statistics on pandoc: benchmarks and lines of code
# The stats are put in the stats directory, marked with date and revision hash.

STATSDIR=stats
mkdir $STATSDIR

DATE=`date +%Y_%m_%d`
REV=`git rev-parse --short HEAD`

EXT=$DATE.$REV
BENCH=$STATSDIR/benchmark.$EXT
LOC=$STATSDIR/loc.$EXT
SUMMARY=$STATSDIR/summary.$EXT

runghc Benchmark.hs > $BENCH
find src -name '*.hs' | xargs wc -l > $LOC

LOCSUM=`tail -1 $LOC | sed -Ee 's/^ *([0-9]+).*/\1/'`

echo "Revision $REV" > $SUMMARY
echo `date` >> $SUMMARY
echo "$LOCSUM lines of code" >> $SUMMARY
echo "" >> $SUMMARY

sed -nEe '/^(benchmarking|mean:)/p' $BENCH | \
  sed -Ee '/benchmarking/N;s/\n/: /' | \
  sed -Ee 's/benchmarking (.*)/\1/' | \
  sed -Ee 's/mean: ([^ ]*) *([^,]*).*/\1:\2/' | \
  awk 'BEGIN { FS = ": *" } ; { printf("%s:%7.2f %s\n", $1, $2, $3); }' | \
  column -t -s ":" >> $SUMMARY