run method Null safety

  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() async {
  Loggy.initLoggy(
      logPrinter: const PrettyPrinter(
        showColors: false,
      ),
      logOptions: OnvifUtil.convertToLogOptions(globalResults!['log-level']));

  final timeout = int.parse(argResults!['timeout']);

  if (timeout < 1) {
    throw UsageException(
        'API usage error:', 'timeout must be greater than zero');
  }

  final multicastProbe = MulticastProbe();

  await multicastProbe.probe();

  if (argResults!['start-proxy-server']) {
    final server = await shelf_io.serve(
        (Request request) => Response.ok(
              json.encode(multicastProbe.onvifDevices),
              headers: {'Content-type': 'application/json'},
            ),
        '0.0.0.0',
        8080);

    // Enable content compression
    server.autoCompress = true;

    logInfo('Serving at http://${server.address.host}:${server.port}');
  } else {
    print(multicastProbe.onvifDevices);
  }
}