run method
Runs the add-package workflow.
Implementation
void run(List<String> arguments) {
final packageProcess = PackageProcess(fs: fs, runner: runner, log: log);
final dart = DartProcess(runner: runner, log: log);
final projectNameProcess = ProjectNameProcess(log: log);
final common = CommonProcess(fs: fs, runner: runner, log: log);
try {
final packageName = projectNameProcess.getProjectName(arguments: arguments);
if (!fs.directory('packages').existsSync()) {
throw Exception('⚠️ Directory "packages" not found. Are you in a workspace root?');
}
final dartVersion = dart.getDartVersionSync();
packageProcess.createPackageSync(packageName: packageName);
packageProcess.updatePubspecSync(
packageName: packageName,
dartVersion: dartVersion,
);
log('\n🎉 Package "$packageName" added successfully!');
} on ArgumentError catch (e) {
log('⚠️ Error: ${e.message}');
final parser = ArgParser()
..addOption('name', abbr: 'n', help: 'The name of the package.');
common.printUsage(parser);
throw ExitException(64);
} catch (e) {
log('⚠️ Error: ${e.toString()}');
throw ExitException(1);
}
}