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 options = InitOptions.fromArgResults(
argResults!,
globalResults: globalResults,
);
final targetDirectory = Directory(
options.globalOptions.directory ?? Directory.current.path,
).absolute;
final pubspecFile = File(path.join(targetDirectory.path, 'pubspec.yaml'));
if (!pubspecFile.existsSync()) {
stderr.writeln('pubspec.yaml not found in ${targetDirectory.path}');
return 1;
}
final configFile = File(path.join(targetDirectory.path, kConfigFileName));
if (configFile.existsSync() && !options.force) {
stderr.writeln(
'$kConfigFileName already exists in ${targetDirectory.path}. '
'Re-run with --force to overwrite it.',
);
return 1;
}
await configFile.writeAsString(_renderConfig(options));
stdout.writeln('Created ${configFile.path}');
return 0;
}