add option parsing

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@9044 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Johan Danielsson
2000-09-10 19:19:20 +00:00
parent 47b95f3233
commit 9c1353f1f8
4 changed files with 117 additions and 17 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1997 - 2000 Kungliga Tekniska H<>gskolan
* Copyright (c) 1997-2000 Kungliga Tekniska H<>gskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -469,13 +469,38 @@ doit(const char *filename, int merge)
return 0;
}
static struct getargs args[] = {
{ "help", 'h', arg_flag, NULL }
};
static int num_args = sizeof(args) / sizeof(args[0]);
static void
usage(const char *name)
{
arg_printusage (args, num_args, name, "file");
}
int
load(int argc, char **argv)
{
if(argc < 2){
krb5_warnx(context, "Usage: load filename");
int optind = 0;
int help_flag = 0;
args[0].value = &help_flag;
if(getarg(args, num_args, argc, argv, &optind)) {
usage ("load");
return 0;
}
if(argc - optind < 2 || help_flag) {
usage ("load");
return 0;
}
doit(argv[1], 0);
return 0;
}
@@ -483,10 +508,20 @@ load(int argc, char **argv)
int
merge(int argc, char **argv)
{
if(argc < 2){
krb5_warnx(context, "Usage: merge filename");
int optind = 0;
int help_flag = 0;
args[0].value = &help_flag;
if(getarg(args, num_args, argc, argv, &optind)) {
usage ("merge");
return 0;
}
if(argc - optind < 2 || help_flag) {
usage ("merge");
return 0;
}
doit(argv[1], 1);
return 0;
}