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() async {
  await initializeOnvif();

  final needsSourceToken =
      (argResults?['scope-include-sources-type'] ??
          argResults?['scope-include-sources-token']) !=
      null;

  final sourceToken =
      needsSourceToken
          ? [
            SourceToken(
              type: argResults?['scope-include-sources-type'],
              token: argResults?['scope-include-sources-token'],
            ),
          ]
          : null;

  final needsSearchScope =
      (sourceToken ??
          argResults?['scope-include-recordings'] ??
          argResults?['scope-recording-information-filter']) !=
      null;

  final searchScope =
      needsSearchScope
          ? SearchScope(
            includedSources: sourceToken,
            includedRecordings: argResults?['scope-include-recordings']
                .toString()
                .split(','),
            recordingInformationFilter:
                argResults?['scope-recording-information-filter'],
          )
          : null;

  try {
    final searchToken = await search.findRecordings(
      searchScope: searchScope,
      maxMatches: argResults?['max-matches'],
      keepAliveTime: argResults!['keep-alive-time'],
    );

    print(searchToken);
  } on DioException catch (err) {
    throw UsageException('API usage error:', err.usage);
  }
}