main method

Future<void> main(
  1. List<String> args
)

Implementation

Future<void> main(List<String> args) async {
  Map<String, String> params = HashMap<String, String>();
  OnboardingUtil registerUtil = OnboardingUtil();

  final argParser = ArgParser()
    ..addOption('email',
        abbr: 'e',
        help: 'The email address you would like to assign your atSign to')
    ..addFlag('help',
        abbr: 'h', help: 'Usage instructions', negatable: false);

  ArgResults argResults = argParser.parse(args);

  if (argResults.wasParsed('help')) {
    stderr.writeln(
        '[Usage] dart run register.dart -e email@email.com\n[Options]\n${argParser.usage}');
    exit(0);
  }

  if (!argResults.wasParsed('email')) {
    stderr.writeln(
        '[Unable to run Register CLI] Please enter your email address'
        '\n[Usage] dart run register.dart -e email@email.com\n[Options]\n${argParser.usage}');
    exit(6);
  }

  if (registerUtil.validateEmail(argResults['email'])) {
    params['email'] = argResults['email'];
  } else {
    stderr.writeln(
        '[Unable to run Register CLI] You have entered an invalid email address. Check your email address and try again.');
    exit(7);
  }

  //set the following parameter to RegisterApiConstants.apiHostStaging
  //to use the staging environment
  params['authority'] = RegistrarApiConstants.apiHostProd;

  //create stream of tasks each of type [RegisterApiTask] and then
  // call start on the stream of tasks
  await RegistrationFlow(params, registerUtil)
      .add(GetFreeAtsign())
      .add(RegisterAtsign())
      .add(ValidateOtp())
      .start();

  await activate_cli
      .main(['-a', params['atsign']!, '-c', params['cramkey']!]);
}