runProjectCommand method
Future<void>
runProjectCommand(
)
override
Implementation
@override
Future<void> runProjectCommand() async {
final engine = DoctorEngine(context);
final result = await engine.runAllScans();
final scoreEngine = ScoreEngine(context);
final catScores = scoreEngine.calculateDetailedScore(result.issues);
final totalScore = scoreEngine.calculateTotalScore(catScores);
final report = ReportModel(
totalScore: totalScore,
categoryScores: catScores,
issues: result.issues,
metrics: result.metrics,
);
bool genJson = argResults?['json'] as bool? ?? false;
bool genHtml = argResults?['html'] as bool? ?? false;
bool genMarkdown = argResults?['markdown'] as bool? ?? false;
bool genCsv = argResults?['csv'] as bool? ?? false;
// Fallback to config if no flags provided
if (!genJson && !genHtml && !genMarkdown && !genCsv) {
genJson = context.config.reportJson;
genHtml = context.config.reportHtml;
genMarkdown = context.config.reportMarkdown;
genCsv = context.config.reportCsv;
}
// Default to all if still nothing is selected
if (!genJson && !genHtml && !genMarkdown && !genCsv) {
genJson = true;
genHtml = true;
genMarkdown = true;
genCsv = true;
}
final reporter = ReportGenerator(context);
await reporter.generateSpecific(
report: report,
json: genJson,
html: genHtml,
markdown: genMarkdown,
csv: genCsv,
);
context.logger.success(
'Reports generated successfully in .flutter_doctor_pro/reports/',
);
}