summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2016-06-23 12:19:10 +0200
committerLubomir Rintel <lkundrak@v3.sk>2016-06-29 20:28:42 +0200
commit5182ab3d5d40a6024fc0b2f04c13425fa2f01d0a (patch)
tree6db2b941c850179d19156355bc47ac4e7f32b89c
parent1a88eac02a513ed85f11a3c046d2ca0d7663e507 (diff)
downloadNetworkManager-5182ab3d5d40a6024fc0b2f04c13425fa2f01d0a.tar.gz
cli/device: use nmc_do_cmd()
-rw-r--r--clients/cli/devices.c160
1 files changed, 45 insertions, 115 deletions
diff --git a/clients/cli/devices.c b/clients/cli/devices.c
index dc8efc80b1..59e10aa949 100644
--- a/clients/cli/devices.c
+++ b/clients/cli/devices.c
@@ -1401,6 +1401,12 @@ do_devices_status (NmCli *nmc, int argc, char **argv)
NmcOutputField *tmpl, *arr;
size_t tmpl_len;
+ if (!nmc_terse_option_check (nmc->print_output, nmc->required_fields, &error)) {
+ g_string_printf (nmc->return_text, _("Error: %s."), error->message);
+ g_error_free (error);
+ return NMC_RESULT_ERROR_USER_INPUT;
+ }
+
while (argc > 0) {
g_printerr (_("Unknown parameter: %s\n"), *argv);
argc--;
@@ -1421,8 +1427,7 @@ do_devices_status (NmCli *nmc, int argc, char **argv)
if (error) {
g_string_printf (nmc->return_text, _("Error: 'device status': %s"), error->message);
g_error_free (error);
- nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
- goto error;
+ return NMC_RESULT_ERROR_USER_INPUT;
}
/* Add headers */
@@ -1440,9 +1445,6 @@ do_devices_status (NmCli *nmc, int argc, char **argv)
g_free (devices);
return NMC_RESULT_SUCCESS;
-
-error:
- return nmc->return_value;
}
static NMCResultCode
@@ -1454,6 +1456,9 @@ do_device_show (NmCli *nmc, int argc, char **argv)
int i;
gboolean ret;
+ if (!nmc->mode_specified)
+ nmc->multiline_output = TRUE; /* multiline mode is default for 'device show' */
+
if (argc == 1)
ifname = *argv;
else if (argc > 1) {
@@ -3447,6 +3452,14 @@ error:
static NMCResultCode
do_device_wifi (NmCli *nmc, int argc, char **argv)
{
+ GError *error = NULL;
+
+ if (!nmc_terse_option_check (nmc->print_output, nmc->required_fields, &error)) {
+ g_string_printf (nmc->return_text, _("Error: %s."), error->message);
+ g_error_free (error);
+ return NMC_RESULT_ERROR_USER_INPUT;
+ }
+
if (argc == 0)
nmc->return_value = do_device_wifi_list (nmc, argc-1, argv+1);
else if (argc > 0) {
@@ -3630,6 +3643,17 @@ error:
static NMCResultCode
do_device_lldp (NmCli *nmc, int argc, char **argv)
{
+ GError *error = NULL;
+
+ if (!nmc_terse_option_check (nmc->print_output, nmc->required_fields, &error)) {
+ g_string_printf (nmc->return_text, _("Error: %s."), error->message);
+ g_error_free (error);
+ return NMC_RESULT_ERROR_USER_INPUT;
+ }
+
+ if (!nmc->mode_specified)
+ nmc->multiline_output = TRUE; /* multiline mode is default for 'device lldp' */
+
if (argc == 0)
nmc->return_value = do_device_lldp_list (nmc, argc, argv);
else if (matches (*argv, "list") == 0)
@@ -3711,11 +3735,23 @@ nmcli_device_tab_completion (const char *text, int start, int end)
return match_array;
}
+static const NMCCommand device_cmds[] = {
+ {"status", do_devices_status, usage_device_status },
+ {"show", do_device_show, usage_device_show },
+ {"connect", do_device_connect, usage_device_connect },
+ {"reapply", do_device_reapply, usage_device_reapply },
+ {"disconnect", do_devices_disconnect, usage_device_disconnect },
+ {"delete", do_devices_delete, usage_device_delete },
+ {"set", do_device_set, usage_device_set },
+ {"monitor", do_devices_monitor, usage_device_monitor },
+ {"wifi", do_device_wifi, usage_device_wifi },
+ {"lldp", do_device_lldp, usage_device_lldp },
+ {NULL, do_devices_status, usage },
+};
+
NMCResultCode
do_devices (NmCli *nmc, int argc, char **argv)
{
- GError *error = NULL;
-
/* Register polkit agent */
nmc_start_polkit_agent_start_try (nmc);
@@ -3727,116 +3763,10 @@ do_devices (NmCli *nmc, int argc, char **argv)
/* Check whether NetworkManager is running */
if (!nm_client_get_nm_running (nmc->client)) {
g_string_printf (nmc->return_text, _("Error: NetworkManager is not running."));
- nmc->return_value = NMC_RESULT_ERROR_NM_NOT_RUNNING;
- return nmc->return_value;
- }
-
- if (argc == 0) {
- if (!nmc_terse_option_check (nmc->print_output, nmc->required_fields, &error))
- goto opt_error;
- nmc->return_value = do_devices_status (nmc, 0, NULL);
+ return NMC_RESULT_ERROR_NM_NOT_RUNNING;
}
- if (argc > 0) {
- if (nmc_arg_is_help (*argv)) {
- usage ();
- goto usage_exit;
- }
- else if (matches (*argv, "status") == 0) {
- if (nmc_arg_is_help (*(argv+1))) {
- usage_device_status ();
- goto usage_exit;
- }
- if (!nmc_terse_option_check (nmc->print_output, nmc->required_fields, &error))
- goto opt_error;
- nmc->return_value = do_devices_status (nmc, argc-1, argv+1);
- }
- else if (matches (*argv, "show") == 0) {
- if (nmc_arg_is_help (*(argv+1))) {
- usage_device_show ();
- goto usage_exit;
- }
- if (!nmc->mode_specified)
- nmc->multiline_output = TRUE; /* multiline mode is default for 'device show' */
- nmc->return_value = do_device_show (nmc, argc-1, argv+1);
- }
- else if (matches (*argv, "connect") == 0) {
- if (nmc_arg_is_help (*(argv+1))) {
- usage_device_connect ();
- goto usage_exit;
- }
- nmc->return_value = do_device_connect (nmc, argc-1, argv+1);
- }
- else if (matches (*argv, "reapply") == 0) {
- if (nmc_arg_is_help (*(argv+1))) {
- usage_device_reapply ();
- goto usage_exit;
- }
- nmc->return_value = do_device_reapply (nmc, argc-1, argv+1);
- }
- else if (matches (*argv, "disconnect") == 0) {
- if (nmc_arg_is_help (*(argv+1))) {
- usage_device_disconnect ();
- goto usage_exit;
- }
- nmc->return_value = do_devices_disconnect (nmc, argc-1, argv+1);
- }
- else if (matches (*argv, "delete") == 0) {
- if (nmc_arg_is_help (*(argv+1))) {
- usage_device_delete ();
- goto usage_exit;
- }
- nmc->return_value = do_devices_delete (nmc, argc-1, argv+1);
- }
- else if (matches (*argv, "set") == 0) {
- if (nmc_arg_is_help (*(argv+1))) {
- usage_device_set ();
- goto usage_exit;
- }
- nmc->return_value = do_device_set (nmc, argc-1, argv+1);
- }
- else if (matches (*argv, "monitor") == 0) {
- if (nmc_arg_is_help (*(argv+1))) {
- usage_device_monitor ();
- goto usage_exit;
- }
- nmc->return_value = do_devices_monitor (nmc, argc-1, argv+1);
- }
- else if (matches (*argv, "wifi") == 0) {
- if (nmc_arg_is_help (*(argv+1))) {
- usage_device_wifi ();
- goto usage_exit;
- }
- if (!nmc_terse_option_check (nmc->print_output, nmc->required_fields, &error))
- goto opt_error;
- nmc->return_value = do_device_wifi (nmc, argc-1, argv+1);
- }
- else if (matches (*argv, "lldp") == 0) {
- if (nmc_arg_is_help (*(argv+1))) {
- usage_device_lldp ();
- goto usage_exit;
- }
- if (!nmc_terse_option_check (nmc->print_output, nmc->required_fields, &error))
- goto opt_error;
- if (!nmc->mode_specified)
- nmc->multiline_output = TRUE; /* multiline mode is default for 'device lldp' */
- nmc->return_value = do_device_lldp (nmc, argc-1, argv+1);
- }
- else {
- usage ();
- g_string_printf (nmc->return_text, _("Error: 'dev' command '%s' is not valid."), *argv);
- nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
- }
- }
-
-usage_exit:
- return nmc->return_value;
-
-opt_error:
- g_string_printf (nmc->return_text, _("Error: %s."), error->message);
- nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
- g_error_free (error);
- return nmc->return_value;
+ return nmc_do_cmd (nmc, device_cmds, *argv, argc, argv);
}
void