diff --git a/clients/cli/agent.c b/clients/cli/agent.c index b1900b2e0c..4afa4dca74 100644 --- a/clients/cli/agent.c +++ b/clients/cli/agent.c @@ -195,6 +195,14 @@ do_agent_all (NmCli *nmc, int argc, char **argv) return nmc->return_value; } +static const NMCCommand agent_cmds[] = { + {"secret", do_agent_secret, usage_agent_secret }, + {"polkit", do_agent_polkit, usage_agent_polkit }, + {"all", do_agent_all, usage_agent_all }, + {NULL, do_agent_all, usage } +}; + + NMCResultCode do_agent (NmCli *nmc, int argc, char **argv) { @@ -212,39 +220,5 @@ do_agent (NmCli *nmc, int argc, char **argv) return nmc->return_value; } - if (argc == 0) { - nmc->return_value = do_agent_all (nmc, 0, NULL); - } - - if (argc > 0) { - if (nmc_arg_is_help (*argv)) { - usage (); - goto usage_exit; - } else if (matches (*argv, "secret") == 0) { - if (nmc_arg_is_help (*(argv+1))) { - usage_agent_secret (); - goto usage_exit; - } - nmc->return_value = do_agent_secret (nmc, argc-1, argv+1); - } else if (matches (*argv, "polkit") == 0) { - if (nmc_arg_is_help (*(argv+1))) { - usage_agent_polkit (); - goto usage_exit; - } - nmc->return_value = do_agent_polkit (nmc, argc-1, argv+1); - } else if (matches (*argv, "all") == 0) { - if (nmc_arg_is_help (*(argv+1))) { - usage_agent_all (); - goto usage_exit; - } - nmc->return_value = do_agent_all (nmc, argc-1, argv+1); - } else { - usage (); - g_string_printf (nmc->return_text, _("Error: 'agent' command '%s' is not valid."), *argv); - nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; - } - } - -usage_exit: - return nmc->return_value; + return nmc_do_cmd (nmc, agent_cmds, *argv, argc, argv); }