doRun method
Implementation
@override
Future<int> doRun() async {
printInfo('Start code generation...');
final rootDirPath = p.current;
printVerbose('Current directory: $rootDirPath');
printVerbose('Search for pubspec with $_buildRunner dependency');
final pubspecFiles = await _findPubspecs();
printVerbose('Found ${pubspecFiles.length} pubspec files');
if (pubspecFiles.isEmpty) {
return success(
message: '🔍 No pubspec.yaml with $_buildRunner dependency found.',
);
}
for (final pubspecFile in pubspecFiles) {
final relativePath = p.relative(pubspecFile.path, from: rootDirPath);
printInfo('Generating code for $relativePath');
setCurrentDir(pubspecFile.parent.path);
printVerbose('Current directory: ${Directory.current.path}');
await flutter.runPubOrFail(
'build_runner',
[
'build',
'--delete-conflicting-outputs',
],
prependWithPubGet: true,
title: 'Running code generation',
);
printInfo('Generation for $relativePath - DONE');
}
return success(message: '🛠️ Code generation complete!');
}