|  | #!/bin/bash | 
|  |  | 
|  | EXCLUDED_FILES="/\.xml$/d;/\.txt$/d;/package-info\.java/d;/\.yml$/d;/\.md$/d;/\.mod$/d" | 
|  | EXCLUDED_PATHS="/jetty-ant\//d;/tests\//d;/examples\//d;/\/src\/test\//d" | 
|  |  | 
|  | FILTEREDLOG=git-filtered.log | 
|  |  | 
|  | git log \ | 
|  | --after '2015-12-01 00:00' \ | 
|  | --until '2016-03-31 23:59' \ | 
|  | --oneline > $FILTEREDLOG | 
|  |  | 
|  | UNIQCOMMITS=$(cat $FILTEREDLOG | wc -l) | 
|  |  | 
|  | git log \ | 
|  | --after '2015-12-01 00:00' \ | 
|  | --until '2016-03-31 23:59' \ | 
|  | --numstat --format= | sed \ | 
|  | -e "$EXCLUDED_FILES" \ | 
|  | -e "$EXCLUDED_PATHS" \ | 
|  | | sort --key=3 > $FILTEREDLOG | 
|  |  | 
|  | UNIQFILES=$(cat $FILTEREDLOG | cut -f 3- | uniq | wc -l) | 
|  |  | 
|  | # Show output | 
|  | echo "$UNIQCOMMITS unique commits" | 
|  | echo "$UNIQFILES unique files" | 
|  | cat $FILTEREDLOG | awk '{total = total + $1}END{print total " lines added"}' | 
|  | cat $FILTEREDLOG | awk '{total = total + $2}END{print total " lines removed"}' | 
|  |  | 
|  | rm $FILTEREDLOG | 
|  |  |