main function

Future main(
  1. List<String> args, [
  2. DrawBase? drawService
])

General command template: nftgen <PROJECT-DIR>

Add --no-kill and method will throw NftCliException instead of calling exit(64).

Implementation

Future<dynamic> main(List<String> args, [DrawBase? drawService]) async {
  final runner = CommandRunner("nftgen", "Generate NFTs")
    ..addCommand(DemoCommand(drawService))
    ..addCommand(InitCommand())
    ..addCommand(MetaCommand())
    ..addCommand(RarityCommand())
    ..addCommand(CidCommand())
    ..addCommand(CrunchCommand())
    ..addCommand(NftCommand(drawService));
  try {
    await runner.run(args);
    if (args.contains("--no-kill") == false) {
      exit(0);
    }
  } catch (error, stack) {
    // stderr.writeln(error);
    // stderr.writeln(stack);

    if (error is NftException) {
      stderr.writeln(error.message);
    } else {
      stderr.writeln(error);
      stderr.writeln(stack);
    }
    // EXIT if on pure CLI
    if (args.contains("--no-kill") == false) {
      exit(64); // Exit code 64 indicates a usage error.
    }
    if (error is! UsageException) {
      rethrow;
    }
  }
}