String getCommandLineOption()

in common/src/main/java/org/mvndaemon/mvnd/common/Environment.java [477:510]


    String getCommandLineOption(Collection<String> args, boolean remove) {
        final String[] prefixes = getPrefixes();
        String value = null;
        for (Iterator<String> it = args.iterator(); it.hasNext(); ) {
            String arg = it.next();
            if (Stream.of(prefixes).anyMatch(arg::startsWith)) {
                if (remove) {
                    it.remove();
                }
                if (type == OptionType.VOID) {
                    value = "";
                } else {
                    String opt = Stream.of(prefixes)
                            .filter(arg::startsWith)
                            .max(Comparator.comparing(String::length))
                            .get();
                    value = arg.substring(opt.length());
                    if (value.isEmpty()) {
                        if (it.hasNext()) {
                            value = it.next();
                            if (remove) {
                                it.remove();
                            }
                        }
                    } else {
                        if (value.charAt(0) == '=') {
                            value = value.substring(1);
                        }
                    }
                }
            }
        }
        return value;
    }