run method

  1. @override
Future<void> run()
override

Runs this command.

The return value is wrapped in a Future if necessary and returned by CommandRunner.runCommand.

Implementation

@override
Future<void> run() async {
  final projectDir = findNitroProjectRoot();
  if (projectDir == null) {
    stderr.writeln('❌ No Nitro project found.');
    exit(1);
  }
  final pubspec = File(p.join(projectDir.path, 'pubspec.yaml'));
  String pluginName = 'unknown';
  for (final line in pubspec.readAsLinesSync()) {
    if (line.startsWith('name: ')) {
      pluginName = line.replaceFirst('name: ', '').trim();
      break;
    }
  }
  Directory.current = projectDir;
  final result = LinkResult();
  await runApp(LinkView(pluginName: pluginName, result: result));
  if (result.success) {
    stdout.writeln('\n  \x1B[1;32m✨ $pluginName linked\x1B[0m');
  }
}