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 {
final rest = argResults!.rest;
if (rest.isEmpty) {
usageException('Missing <name> argument.');
}
final paths = ProjectPaths.locate();
final className = Naming.pascal(rest.first);
final file = File(
p.join(
paths.root,
'lib',
'app',
folder,
'${Naming.snake(className)}.dart',
),
);
if (file.existsSync() && !(argResults!['force'] as bool)) {
stderr.writeln(
'${p.relative(file.path, from: paths.root)} exists; pass --force.',
);
return 1;
}
final model = argResults!['model'] as String?;
file.parent.createSync(recursive: true);
file.writeAsStringSync(
source(
className,
paths.packageName,
model == null ? null : Naming.pascal(model),
),
);
stdout.writeln('Created ${p.relative(file.path, from: paths.root)}');
return 0;
}