execute method
Executes the command with the provided arguments.
Returns an integer exit code (0 for success).
Implementation
@override
Future<int> execute(List<String> arguments) async {
final ArgResults results;
try {
results = _argParser.parse(arguments);
} on FormatException catch (e) {
throw ValidationException(
'Error: ${e.message}\n\nUsage:\n flutter_setup verify [--path <path>] [--allow-dirty]',
);
}
final targetPath = results['path'] as String? ?? '.';
final allowDirty = results['allow-dirty'] as bool? ?? false;
final context = ReleaseContext(
projectPath: targetPath,
type: ReleaseType.normal,
allowDirty: allowDirty,
);
_output.info('Flutter Setup Verification\n');
final validationResult = await _pipeline.validate(context);
for (final check in validationResult.checks) {
switch (check.status) {
case CheckStatus.passed:
_output.success('${check.name}: ${check.message}');
break;
case CheckStatus.warning:
_output.warning('${check.name}: ${check.message}');
break;
case CheckStatus.failed:
_output.error('✗ ${check.name}: ${check.message}');
break;
}
}
if (validationResult.passed) {
_output.info('\nVerification complete.');
return 0;
} else {
_output.error('\nVerification failed.');
return 1;
}
}