createDartCli method
Create a Dart CLI project
Implementation
Future<bool> createDartCli() async {
if (config.template != TemplateType.arcaneCli) {
return false;
}
final String projectPath = p.join(config.outputDir, config.appName);
info('Creating Dart CLI: ${config.appName}');
// Use dart create for CLI projects
final List<String> args = <String>['create', '-t', 'console', projectPath];
final ProcessResult? result = await _runner.runWithRetry(
'dart',
args,
operationName: 'Dart create',
);
if (result == null || !result.success) {
error('Failed to create Dart CLI');
return false;
}
// dart create generates default files that we'll replace with our template
// Delete the generated lib and bin folders to replace with template
final Directory libDir = Directory(p.join(projectPath, 'lib'));
final Directory binDir = Directory(p.join(projectPath, 'bin'));
if (libDir.existsSync()) {
await libDir.delete(recursive: true);
}
if (binDir.existsSync()) {
await binDir.delete(recursive: true);
}
success('Dart CLI created at: $projectPath');
return true;
}