run method Null safety
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);
}
}