parseArgs static method

Future<Arguments> parseArgs(
  1. List<String> args,
  2. Arguments defaults
)

Parses and returns the arguments list with keeping defaults in mind

Implementation

static Future<Arguments> parseArgs(
    List<String> args, Arguments defaults) async {
  Arguments arguments = defaults.clone();
  for (int i = 0; i < args.length; i++) {
    Argument arg = await _parseArgument(args[i]);
    Argument? defArg;
    if (defaults.hasArg(arg.name)) defArg = defaults.getArg(arg.name)!;

    if (!arg.hasValue) {
      if (defArg != null) {
        arg = defArg;
      }
    }

    arguments.setArg(arg);
  }

  return arguments;
}