parseSimpleProperties method

void parseSimpleProperties([
  1. Set<String>? simpleProperties
])

Implementation

void parseSimpleProperties([Set<String>? simpleProperties]) {
  var allSimpleProperties = false;

  if (simpleProperties != null) {
    simpleProperties =
        simpleProperties.map((e) => e.toLowerCase().trim()).toSet();

    allSimpleProperties = simpleProperties.remove('*');
  } else {
    simpleProperties = {};
  }

  for (var i = 0; i < _args.length;) {
    var arg = _args[i];

    if (arg.startsWith('--')) {
      var name = arg.substring(2).toLowerCase().trim();

      if (!allSimpleProperties && !simpleProperties.contains(name)) {
        ++i;
        continue;
      }

      _args.removeAt(i);

      String value;
      if (i < _args.length) {
        value = _args[i];
        if (value.startsWith('--')) {
          value = 'true';
        } else {
          _args.removeAt(i);
        }
      } else {
        value = 'true';
      }

      _properties[name] = value;
    } else {
      ++i;
    }
  }
}