Annotation of loncom/build/Makefile.cvs, revision 1.1
1.1 ! harris41 1: # The LearningOnline Network with CAPA
! 2:
! 3: # Scott Harrison
! 4: # $Id$
! 5:
! 6: STATDIR="loncom/build/cvsstats"
! 7: STATSUBDIR="cvsstats"
! 8:
! 9: help:
! 10: @echo "*** You need to specify a valid target ***"
! 11: @echo "cvsreport: look at the latest changes over the last week"
! 12: @echo "cvscommit: look at the number of commits since the origin of"
! 13: @echo " LON-CAPA archiving"
! 14: @echo "linesofcode: look at the number of unique lines of code since"
! 15: @echo " LON-CAPA archiving"
! 16: @echo "Information is placed inside CVS:loncom/build/cvsstats"
! 17:
! 18: cvsreport:
! 19: # Header
! 20: echo "<h1>Automatically generated CVS report</h1>" > \
! 21: ../../doc/build/cvsreport.html
! 22: # General Date Info
! 23: echo "<h1>LON-CAPA Software Changes from `date --date='7 days ago' \
! 24: +\"%Y-%m-%d\"` to `date +\"%Y-%m-%d\"`</h1>" >> \
! 25: ../../doc/build/cvsreport.html
! 26: # General Alteration Info
! 27: echo "<p>Number of altered files:" >> ../../doc/build/cvsreport.html
! 28: cd ../..; cvs log -d ">`date --date='8 days ago' +\"%Y-%m-%d\"`" \
! 29: loncom CAPA doc packaging 2>/dev/null | perl \
! 30: loncom/build/cvsfilter.pl | grep '^Working file:' | cut -b15- | \
! 31: wc -l >> doc/build/cvsreport.html
! 32: # Listing of Altered Files
! 33: echo "</p><p>Altered files:</p><p><pre>" >> \
! 34: ../../doc/build/cvsreport.html
! 35: cd ../..; cvs log -d ">`date --date='8 days ago' +\"%Y-%m-%d\"`" \
! 36: loncom CAPA doc packaging 2>/dev/null | \
! 37: perl loncom/build/cvsfilter.pl | grep '^Working file:' | cut -b15- \
! 38: >> doc/build/cvsreport.html
! 39: # Log entries for loncom
! 40: echo "</pre></p><p>Log entries for <b>loncom</b>:</p><pre>" >> \
! 41: ../../doc/build/cvsreport.html
! 42: cd ../../loncom; cvs log -d ">`date --date='8 days ago' \
! 43: +\"%Y-%m-%d\"`" . 2>/dev/null | perl ../loncom/build/cvsfilter.pl >> \
! 44: ../doc/build/cvsreport.html
! 45: # Log entries for CAPA
! 46: echo "</pre></p><p>Log entries for <b>CAPA</b>:</p><pre>" >> \
! 47: ../../doc/build/cvsreport.html
! 48: cd ../../CAPA; cvs log -d ">`date --date='8 days ago' \
! 49: +\"%Y-%m-%d\"`" . 2>/dev/null | perl ../loncom/build/cvsfilter.pl >> \
! 50: ../doc/build/cvsreport.html
! 51: # Log entries for doc
! 52: echo "</pre></p><p>Log entries for <b>doc</b>:</p><pre>" >> \
! 53: ../../doc/build/cvsreport.html
! 54: cd ../../doc; cvs log -d ">`date --date='8 days ago' \
! 55: +\"%Y-%m-%d\"`" . 2>/dev/null | perl ../loncom/build/cvsfilter.pl >> \
! 56: ../doc/build/cvsreport.html
! 57: # Log entries for packaging
! 58: echo "</pre></p><p>Log entries for <b>packaging</b>:</p><pre>" >> \
! 59: ../../doc/build/cvsreport.html
! 60: cd ../../packaging; cvs log -d ">`date --date='8 days ago' \
! 61: +\"%Y-%m-%d\"`" . 2>/dev/null | perl ../loncom/build/cvsfilter.pl >> \
! 62: ../doc/build/cvsreport.html
! 63: echo "</pre></p>" >> ../../doc/build/cvsreport.html
! 64:
! 65: statpage:
! 66: install -d cvsstats
! 67: echo '<html><title>LON-CAPA Coding Metrics</title>' > $(STATSUBDIR)/index.html
! 68: echo '<body bgcolor="#ffffff">' >> $(STATSUBDIR)/index.html
! 69: echo '<h1>LON-CAPA Coding Metrics</h1>' >> $(STATSUBDIR)/index.html
! 70: echo '<br />Compiled as of ' >> $(STATSUBDIR)/index.html
! 71: date >> $(STATSUBDIR)/index.html
! 72: echo '<p> </p>'
! 73: echo '<br />Lines of Code; unique changes per month' >> $(STATSUBDIR)/index.html
! 74: echo '<br />Lines of Code; unique changes (*.pm only) per month' >> $(STATSUBDIR)/index.html
! 75: echo '<br />Lines of Code; aggregating sum of unique changes per month' >> $(STATSUBDIR)/index.html
! 76: echo '<br />Lines of Code; aggregating sum of unique changes (*.pm only) per month' >> $(STATSUBDIR)/index.html
! 77: echo '<br />Number of commits to software repository per month' >> $(STATSUBDIR)/index.html
! 78: echo '<br />Number of commits to software repository (*.pm only) per month' >> $(STATSUBDIR)/index.html
! 79: echo '<br />Aggregating sum of number of commits to software repository per month' >> $(STATSUBDIR)/index.html
! 80: echo '<br />Aggregating sum of number of commits to software repository (*.pm only) per month' >> $(STATSUBDIR)/index.html
! 81: echo '<br /><img src="loc.png" alt="lines of code" />' >> $(STATSUBDIR)/index.html
! 82: echo '<br /><img src="locpm.png" alt="lines of code, perl modules" />' >> $(STATSUBDIR)/index.html
! 83: echo '<br /><img src="locsum.png" alt="aggregate lines of code" />' >> $(STATSUBDIR)/index.html
! 84: echo '<br /><img src="locpmsum.png" alt="aggregate lines of code, perl modules" />' >> $(STATSUBDIR)/index.html
! 85: echo '<br /><img src="commit.png" alt="number of commits" />' >> $(STATSUBDIR)/index.html
! 86: echo '<br /><img src="commitpm.png" alt="number of commits, perl modules" />' >> $(STATSUBDIR)/index.html
! 87: echo '<br /><img src="commitsum.png" alt="aggregate number of commits" />' >> $(STATSUBDIR)/index.html
! 88: echo '<br /><img src="commitpmsum.png" alt="aggregate number of commits, perl modules" />' >> $(STATSUBDIR)/index.html
! 89: echo '</body>' >> $(STATSUBDIR)/index.html
! 90: echo '</html>' >> $(STATSUBDIR)/index.html
! 91:
! 92: linesofcode:
! 93: install -d cvsstats
! 94: # for all, and for .pm
! 95: # get date array
! 96: cd ../..; perl -e ' \
! 97: ($$begindate,$$enddate)=@ARGV;\
! 98: ($$by,$$bm,$$bd)=($$begindate=~/(\d{4,4})(\d{2,2})(\d{2,2})/);\
! 99: ($$ey,$$em,$$ed)=($$enddate=~/(\d{4,4})(\d{2,2})(\d{2,2})/);\
! 100: for ($$y=$$by; $$y<=$$ey; $$y++) {\
! 101: if ($$y==$$by) {$$m=$$bm;} else {$$m=1;}\
! 102: if ($$y==$$ey) {$$m2=$$em;} else {$$m2=12;}\
! 103: for ($$m; $$m<=$$m2; $$m++) {\
! 104: printf("$$odate\t%4.4d%2.2d%2.2d\n",$$y,$$m,$$bd) if $$odate; \
! 105: $$odate=sprintf("%4.4d%2.2d%2.2d",$$y,$$m,$$bd);\
! 106: }\
! 107: }' 20000101 `date +"%Y%m%d"` |\
! 108: perl -nle '($$d1,$$d2)=split(/\t/);$$loc=`cvs -q diff -D$$d1 -D$$d2 -b -B -N | egrep \"^> .*[^ \t]\" | sed \"s/^> //g\" | sort | uniq | wc -l`;chomp $$loc;$$locsum+=$$loc;print "$$d2\t$$loc\t$$locsum";' > $(STATDIR)/table.txt
! 109: echo -e 'set xdata time\nset timefmt "%Y%m%d"\nset format x "%b %y"\nset xlabel "time"\nset ylabel "lines of code"\nset nokey\nset title "Lines of Code\\nUnique changes per month"\nset output "cvsstats/loc.png"\nset term png color\nplot "cvsstats/table.txt" using 1:2 with lines' | gnuplot
! 110: echo -e 'set xdata time\nset timefmt "%Y%m%d"\nset format x "%b %y"\nset xlabel "time"\nset ylabel "lines of code"\nset nokey\nset title "Lines of Code\\nUnique changes per month"\nset output "cvsstats/locsum.png"\nset term png color\nplot "cvsstats/table.txt" using 1:3 with lines' | gnuplot
! 111: cd ../..; perl -e ' \
! 112: ($$begindate,$$enddate)=@ARGV;\
! 113: ($$by,$$bm,$$bd)=($$begindate=~/(\d{4,4})(\d{2,2})(\d{2,2})/);\
! 114: ($$ey,$$em,$$ed)=($$enddate=~/(\d{4,4})(\d{2,2})(\d{2,2})/);\
! 115: for ($$y=$$by; $$y<=$$ey; $$y++) {\
! 116: if ($$y==$$by) {$$m=$$bm;} else {$$m=1;}\
! 117: if ($$y==$$ey) {$$m2=$$em;} else {$$m2=12;}\
! 118: for ($$m; $$m<=$$m2; $$m++) {\
! 119: printf("$$odate\t%4.4d%2.2d%2.2d\n",$$y,$$m,$$bd) if $$odate; \
! 120: $$odate=sprintf("%4.4d%2.2d%2.2d",$$y,$$m,$$bd);\
! 121: }\
! 122: }' 20000101 `date +"%Y%m%d"` |\
! 123: perl -nle '($$d1,$$d2)=split(/\t/);$$loc=`cvs -q diff -D$$d1 -D$$d2 -b -B -N |\
! 124: perl -e "\@flag=(1);while(<>){if (/RCS file:/) {\@flag=(); pop \@flag; \@flag=(1) if /^RCS file: .*\.pm\,v/;} print if \@flag;}" |\
! 125: egrep \"^> .*[^ \t]\" | sed \"s/^> //g\" | sort | uniq | wc -l`;chomp $$loc;$$locsum+=$$loc;print "$$d2\t$$loc\t$$locsum";' > $(STATDIR)/tablepm.txt
! 126: # process counts, generate table
! 127: # pass table to gnuplot
! 128: echo -e 'set xdata time\nset timefmt "%Y%m%d"\nset format x "%b %y"\nset xlabel "time"\nset ylabel "lines of code"\nset nokey\nset title "Lines of Code\\nUnique changes per month"\nset output "cvsstats/locpm.png"\nset term png color\nplot "cvsstats/tablepm.txt" using 1:2 with lines' | gnuplot
! 129: echo -e 'set xdata time\nset timefmt "%Y%m%d"\nset format x "%b %y"\nset xlabel "time"\nset ylabel "lines of code"\nset nokey\nset title "Lines of Code\\nUnique changes per month"\nset output "cvsstats/locpmsum.png"\nset term png color\nplot "cvsstats/tablepm.txt" using 1:3 with lines' | gnuplot
! 130:
! 131: cvscommit:
! 132: # for all, and for .pm
! 133: # get date array
! 134: # process counts, generate table
! 135: # pass table to gnuplot
! 136:
! 137: clean:
! 138: rm -Rf cvsstats
! 139:
! 140:
! 141:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>