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);
}