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 args = argResults!;
  final role = requireRole(args);
  final descriptor = serviceDescriptor(role, args);
  final manager = _serviceManager(verbose: args['verbose'] as bool);
  if (args['dry-run'] as bool) {
    stdout.writeln(manager.renderDefinition(descriptor));
    return;
  }
  await runService(() async {
    await manager.installDescriptor(
      descriptor,
      startNow: true,
      force: args['force'] as bool,
    );
    stdout.writeln(
      'Installed and started service "$role" (${descriptor.scope.name} '
      'scope).',
    );
  });
}