run method

void run(
  1. List<String> arguments
)

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);
  }
}