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 {
  if (argResults == null) {
    print('Usage: flyer deeplink [options]');
    print(argParser.usage);
    return;
  }

  bool isTest = argResults!['test'] ?? false;

  if (isTest) {
    // Test mode
    String? url = argResults!['url'];
    String? scheme = argResults!['scheme'];
    bool testAndroid = argResults!['android'] ?? false;
    bool testIos = argResults!['ios'] ?? false;

    await testDeeplink(
      url: url,
      scheme: scheme,
      testAndroid: testAndroid,
      testIos: testIos,
    );
  } else {
    // Setup mode
    String? domain = argResults!['domain'];
    String? scheme = argResults!['scheme'];
    bool isDryRun = argResults!['dry-run'] ?? false;

    if (domain == null && scheme == null) {
      print(
          '${ColorsText.red}Error: You must specify either --domain or --scheme${ColorsText.reset}');
      print('\nUsage: flyer deeplink [options]');
      print(argParser.usage);
      exit(1);
    }

    await setupDeeplink(
      domain: domain,
      scheme: scheme,
      isDryRun: isDryRun,
    );
  }
}