public static void main()

in kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/klist/KlistTool.java [243:297]


    public static void main(String[] args) throws Exception {
        KOptions klOptions = new KOptions();
        KlistOption klopt;
        // String name = null;

        int i = 0;
        String opt, value, error;
        while (i < args.length) {
            error = null;
            opt = args[i++];

            if (opt.startsWith("-")) {
                klopt = KlistOption.fromName(opt);
                if (klopt == KlistOption.NONE) {
                    error = "Invalid option:" + opt;
                }
            } else {
                if (keytabFilePath == null && klOptions.contains(KlistOption.KEYTAB)) {
                    keytabFilePath = opt;
                }
                break;
            }

            if (error == null && klopt.getOptionInfo().getType() != KOptionType.NOV) {
                //needs value for this parameter
                value = null;
                if (i < args.length) {
                    value = args[i++];
                }
                if (value != null) {
                    KOptions.parseSetValue(klopt.getOptionInfo(), value);
                } else {
                    error = "Option" + klopt + "requires a following value";
                }
            }

            if (error != null) {
                printUsage(error);
            }

            klOptions.add(klopt);
            if (klOptions.contains(KlistOption.KEYTAB)
                && klOptions.contains(KlistOption.CREDENTIALS_CACHE)) {
                error = "Can not use '-c' and '-k' at the same time ";
                printUsage(error);
            }
        }

        if (keytabFilePath == null) {
            keytabFilePath = "/etc/krb5.keytab";
        }

        int errNo = KlistTool.printInfo(klOptions);
        System.exit(errNo);
    }