Come esercizio ho provato a riscrivere uno script ruby usato per la generazione di metriche sul codice in script per la bash shell.
Lo script prevedeva i seguenti macro passi:
1) estrazioni di progetti da cvs
cvs -d :pserver:anonymous:@blablabla checkout progetto
2) recuperare tutte le classi del codice applicativo, ecludendo quindi i test
find . -name "*.java" | grep -v "/test/" > filelist.txt
Nota l'uso di grep -v per ESCLUDERE dall'output tutti i file che stanno sotto una qualsiasi dir con nome 'test'
3) su queste richiamare script di generazione metriche, quale, ad esempio, http://www.kclee.de/clemens/java/javancss/ :
java -cp ~/javancss/ccl.jar:~/javancss/javancss.jar:~/javancss/jhbasic.jar -jar ~/javancss/javancss.jar -all `cat filelist.txt` | grep "Average Function CCN:" | awk -F":" '{print $2}' | tr -d ' ' > ccn.txt
Nota l'uso di awk per considerare solo il numerello al netto degli spazi (pipe con tr)
4) altri script possono generare dell'xml , quindi per recuperare i dati, si può fare:
cat risultatoMetriche.xml | grep ' \ <> ' > metricasottoesame.txt
5) Su questi risultati, definiti per ogni classe, eseguire operazioni come ad esempio delle medie:
expr `awk 'BEGIN {sum=0} ; {sum = sum + $1} ; END {print sum }' metricasottoesame.txt` / `wc -l metricasottoesame.txt | awk '{print $1}'`
Nessun commento:
Posta un commento