public static KOptions parseOptions()

in kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/ToolUtil.java [35:80]


    public static KOptions parseOptions(String[] commands, int beginIndex, int endIndex) {
        KadminOption kOption;
        String opt, error, param;

        if (beginIndex < 0) {
            System.out.println("Invalid function parameter(s).");
            return null;
        }

        KOptions kOptions = new KOptions();
        int i = beginIndex;
        while (i <= endIndex) {
            error = null;
            opt = commands[i++];
            if (opt.startsWith("-")) {
                kOption = KadminOption.fromName(opt);
                if (kOption == KadminOption.NONE) {
                    error = "Invalid option:" + opt;
                }
            } else {
                kOption = KadminOption.NONE;
                error = "Invalid parameter:" + opt + " , it does not belong to any option.";
            }

            if (kOption != KadminOption.NONE && kOption.getOptionInfo().getType() != KOptionType.NOV) {
                // require a parameter
                param = null;
                if (i <= endIndex) {
                    param = commands[i++];
                }
                if (param != null) {
                    kOptions.parseSetValue(kOption.getOptionInfo(), param);
                } else {
                    error = "Option " + opt + " require a parameter";
                }
            }
            if (error != null) {
                System.out.println(error);
                return null;
            }
            if (kOption != KadminOption.NONE) {
                kOptions.add(kOption);
            }
        }
        return kOptions;
    }