[Unix] comandi utili per generazione di metriche

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: