run method
Runs this command.
The return value is wrapped in a Future if necessary and returned by
CommandRunner.runCommand.
Implementation
@override
Future<int> run() async {
logger.info('Generating assets...');
final assetsDir = Directory('assets');
if (!assetsDir.existsSync()) {
logger.warn('assets directory not found.');
return ExitCode.usage.code;
}
final buffer = StringBuffer();
buffer.writeln('class Assets {');
buffer.writeln(' Assets._();');
buffer.writeln();
await _scanDirectory(assetsDir, buffer);
buffer.writeln('}');
final outputFile = 'lib/common/utils/assets.dart';
// Ensure utils directory exists
FileUtils.createDirectory('lib/common/utils', logger: logger);
FileUtils.createFile(
outputFile,
buffer.toString(),
logger: logger,
overwrite: true,
);
logger.success('Assets generated successfully at $outputFile');
return ExitCode.success.code;
}