diff options
author | Colin Walters <walters@verbum.org> | 2013-07-10 18:42:58 -0400 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2013-07-10 18:42:58 -0400 |
commit | e95935a3f6a853f5637fc8efda8d541fc64dfc28 (patch) | |
tree | b863652231ef7fd9adcd99029b2ce648d3804267 /src/ostree/ot-builtin-admin.c | |
parent | b7460cf0b69f4081d834831db5e1e2e12b33b83e (diff) | |
download | ostree-e95935a3f6a853f5637fc8efda8d541fc64dfc28.tar.gz |
main: Also make ostree admin foo --help work
A followup for the previous commit.
Diffstat (limited to 'src/ostree/ot-builtin-admin.c')
-rw-r--r-- | src/ostree/ot-builtin-admin.c | 53 |
1 files changed, 18 insertions, 35 deletions
diff --git a/src/ostree/ot-builtin-admin.c b/src/ostree/ot-builtin-admin.c index 929542da..bc9c8504 100644 --- a/src/ostree/ot-builtin-admin.c +++ b/src/ostree/ot-builtin-admin.c @@ -31,13 +31,6 @@ #include <glib/gi18n.h> -static char *opt_sysroot = "/"; - -static GOptionEntry options[] = { - { "sysroot", 0, 0, G_OPTION_ARG_STRING, &opt_sysroot, "Path to root directory (default: /)", NULL }, - { NULL } -}; - typedef struct { const char *name; gboolean (*fn) (int argc, char **argv, OtAdminBuiltinOpts *admin_opts, GError **error); @@ -57,42 +50,34 @@ static OstreeAdminCommand admin_subcommands[] = { gboolean ostree_builtin_admin (int argc, char **argv, GFile *repo_path, GError **error) { - GOptionContext *context; gboolean ret = FALSE; __attribute__((unused)) GCancellable *cancellable = NULL; + const char *opt_sysroot; const char *subcommand_name; OstreeAdminCommand *subcommand; int subcmd_argc; OtAdminBuiltinOpts admin_opts; char **subcmd_argv = NULL; - context = g_option_context_new ("[OPTIONS] SUBCOMMAND - Run an administrative subcommand"); - - { - GString *s = g_string_new ("Subcommands:\n"); - - subcommand = admin_subcommands; - while (subcommand->name) - { - g_string_append_printf (s, " %s\n", subcommand->name); - subcommand++; - } - g_option_context_set_description (context, s->str); - g_string_free (s, TRUE); - } - - g_option_context_add_main_entries (context, options, NULL); - /* Skip subcommand options */ - g_option_context_set_ignore_unknown_options (context, TRUE); - - if (!g_option_context_parse (context, &argc, &argv, error)) - goto out; - - if (argc <= 1) + if (argc > 1 && g_str_has_prefix (argv[1], "--sysroot=")) { - ot_util_usage_error (context, "A valid SUBCOMMAND is required", error); - goto out; + opt_sysroot = argv[1] + strlen ("--sysroot="); + argc--; + argv++; } + else if (argc <= 1 || g_str_has_prefix (argv[1], "--help")) + { + subcommand = admin_subcommands; + g_print ("usage: ostree admin --sysroot=PATH COMMAND [options]\n"); + g_print ("Builtin commands:\n"); + while (subcommand->name) + { + g_print (" %s\n", subcommand->name); + subcommand++; + } + return argc <= 1 ? 1 : 0; + } + subcommand_name = argv[1]; subcommand = admin_subcommands; @@ -118,7 +103,5 @@ ostree_builtin_admin (int argc, char **argv, GFile *repo_path, GError **error) ret = TRUE; out: - if (context) - g_option_context_free (context); return ret; } |