execute method
Public method or function.
Implementation
@override
/// Public method or function.
Future<int> execute(List<String> args) async {
final projectPath = args.isNotEmpty
? args.first
: fileSystem.currentDirectory;
if (!fileSystem.exists(projectPath) ||
!fileSystem.isDirectory(projectPath)) {
terminal.writeError('Project path does not exist: $projectPath');
return AppConstants.exitInternalFailure;
}
terminal.writeLine('Diagnosing Firebase setup in $projectPath...');
terminal.writeLine('');
final context = AnalyzerContext(
projectPath: projectPath,
fileSystem: fileSystem,
);
List<DiagnosticResult> results;
try {
results = await analyzerService.runAll(context);
} catch (e) {
terminal.writeError('Diagnosis failed: $e');
return AppConstants.exitInternalFailure;
}
for (final result in results) {
_printAnalyzerHeader(result);
if (result.issues.isEmpty) {
terminal.writeSuccess(' No issues found.');
terminal.writeLine('');
continue;
}
for (final issue in result.issues) {
_printIssue(issue);
}
terminal.writeLine('');
}
_printSummary(results);
// Deterministic exit codes
final report = DiagnosticReport(
projectName: '',
projectPath: '',
createdAt: DateTime.now(),
results: results,
);
return report.exitCode;
}