run method

  1. @override
void run()
override

Runs this command.

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

Implementation

@override
void run() {
  final debug = argResults!['debug'] as bool;
  Settings().setVerbose(enabled: debug);

  final interactive = argResults!['interactive'] as bool;

  final config = ConfigYaml()..validate(() => showUsage(argParser));

  final containerid = config.containerid ?? '';
  final container = Containers().findByContainerId(containerid);
  if (container == null) {
    printerr('Unable to find container: ');
    return;
  }

  if (container.isRunning) {
    printerr('The container $containerid is already running. '
        'Consider nginx-le restart');
    showUsage(argParser);
  }

  print('Starting nginx container $containerid');

  container.start(daemon: !interactive);

  sleep(3);

  if (!container.isRunning) {
    printerr(red('The container $containerid failed to start'));
    print(green('Showing docker logs'));
    container.showLogs();
  }
}