# Collect common metrics about modules
module mmodules_metrics
-import model
import metrics_base
-import phase
-import frontend
redef class ToolContext
var mmodules_metrics_phase: Phase = new MModulesMetricsPhase(self, null)
var model = toolcontext.modelbuilder.model
var mmodules = new HashSet[MModule]
- for mproject in model.mprojects do
+ for mpackage in model.mpackages do
- print toolcontext.format_h2("\n ## project {mproject}")
- for mgroup in mproject.mgroups do
+ print toolcontext.format_h2("\n ## package {mpackage}")
+ for mgroup in mpackage.mgroups do
if mgroup.mmodules.is_empty then continue
# Scalar metrics
print toolcontext.format_h3(" `- group {mgroup.full_name}")
mmodules.add_all(mgroup.mmodules)
+ metrics.clear
metrics.collect(new HashSet[MModule].from(mgroup.mmodules))
metrics.to_console(1, not toolcontext.opt_nocolors.value)
if csv then metrics.to_csv.save("{out}/{mgroup}.csv")