diff options
author | Lubomir Rintel <lkundrak@v3.sk> | 2016-07-06 14:52:25 +0200 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2016-08-01 13:52:36 +0200 |
commit | 8c4b749355d8fe080fefb914962bdec332baf524 (patch) | |
tree | 47b7932f7ee71461c6ce5bcafb8a6b1beffdb579 | |
parent | 1c2cabeda8b5477c76cf4cd750bfe7dd640bc53e (diff) | |
download | NetworkManager-8c4b749355d8fe080fefb914962bdec332baf524.tar.gz |
cli/networking: add subcommand completion
-rw-r--r-- | clients/cli/general.c | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/clients/cli/general.c b/clients/cli/general.c index 972c9d6e36..b919ccb549 100644 --- a/clients/cli/general.c +++ b/clients/cli/general.c @@ -747,19 +747,31 @@ do_networking (NmCli *nmc, int argc, char **argv) { gboolean enable_flag; - /* Not (yet?) supported */ - if (nmc->complete) - return nmc->return_value; - /* Register polkit agent */ nmc_start_polkit_agent_start_try (nmc); - if (argc == 0) + if (argc == 0) { + if (nmc->complete) + return nmc->return_value; nmc_switch_show (nmc, NMC_FIELDS_NM_NETWORKING, _("Networking")); - else if (argc > 0) { + } else if (argc > 0) { + + if (argc == 1 && nmc->complete) { + nmc_complete_strings (*argv, "connectivity", NULL); + nmc_complete_bool (*argv); + return nmc->return_value; + } + if (nmc_arg_is_help (*argv)) { + if (nmc->complete) + return nmc->return_value; usage_networking (); } else if (matches (*argv, "connectivity") == 0) { + if (nmc->complete) { + if (argc == 2) + nmc_complete_strings (*(argv+1), "check", NULL); + return nmc->return_value; + } if (nmc_arg_is_help (*(argv+1))) { usage_networking_connectivity (); goto finish; @@ -784,6 +796,8 @@ do_networking (NmCli *nmc, int argc, char **argv) nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; } } else if (nmc_switch_parse_on_off (nmc, *(argv-1), *argv, &enable_flag)) { + if (nmc->complete) + return nmc->return_value; if (nmc_arg_is_help (*(argv+1))) { if (enable_flag) usage_networking_on (); @@ -795,6 +809,8 @@ do_networking (NmCli *nmc, int argc, char **argv) nmc->get_client (nmc); /* create NMClient */ nm_client_networking_set_enabled (nmc->client, enable_flag, NULL); } else { + if (nmc->complete) + return nmc->return_value; usage_networking (); g_string_printf (nmc->return_text, _("Error: 'networking' command '%s' is not valid."), *argv); nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; |