cli/connections: add completion to down subcommand
This commit is contained in:
@@ -2762,14 +2762,13 @@ do_connection_down (NmCli *nmc, int argc, char **argv)
|
|||||||
int arg_num = argc;
|
int arg_num = argc;
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
|
|
||||||
/* Not (yet?) supported */
|
|
||||||
if (nmc->complete)
|
|
||||||
return nmc->return_value;
|
|
||||||
|
|
||||||
if (nmc->timeout == -1)
|
if (nmc->timeout == -1)
|
||||||
nmc->timeout = 10;
|
nmc->timeout = 10;
|
||||||
|
|
||||||
if (argc == 0) {
|
if (argc == 0) {
|
||||||
|
/* nmc_do_cmd() should not call this with argc=0. */
|
||||||
|
g_assert (!nmc->complete);
|
||||||
|
|
||||||
if (nmc->ask) {
|
if (nmc->ask) {
|
||||||
char *line = nmc_readline (PROMPT_ACTIVE_CONNECTIONS);
|
char *line = nmc_readline (PROMPT_ACTIVE_CONNECTIONS);
|
||||||
nmc_string_to_arg_array (line, NULL, TRUE, &arg_arr, &arg_num);
|
nmc_string_to_arg_array (line, NULL, TRUE, &arg_arr, &arg_num);
|
||||||
@@ -2779,7 +2778,7 @@ do_connection_down (NmCli *nmc, int argc, char **argv)
|
|||||||
if (arg_num == 0) {
|
if (arg_num == 0) {
|
||||||
g_string_printf (nmc->return_text, _("Error: No connection specified."));
|
g_string_printf (nmc->return_text, _("Error: No connection specified."));
|
||||||
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
|
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
|
||||||
goto error;
|
goto finish;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2788,6 +2787,9 @@ do_connection_down (NmCli *nmc, int argc, char **argv)
|
|||||||
while (arg_num > 0) {
|
while (arg_num > 0) {
|
||||||
const char *selector = NULL;
|
const char *selector = NULL;
|
||||||
|
|
||||||
|
if (arg_num == 1)
|
||||||
|
nmc_complete_strings (*arg_ptr, "id", "uuid", "path", "apath", NULL);
|
||||||
|
|
||||||
if ( strcmp (*arg_ptr, "id") == 0
|
if ( strcmp (*arg_ptr, "id") == 0
|
||||||
|| strcmp (*arg_ptr, "uuid") == 0
|
|| strcmp (*arg_ptr, "uuid") == 0
|
||||||
|| strcmp (*arg_ptr, "path") == 0
|
|| strcmp (*arg_ptr, "path") == 0
|
||||||
@@ -2797,7 +2799,7 @@ do_connection_down (NmCli *nmc, int argc, char **argv)
|
|||||||
if (next_arg (&arg_num, &arg_ptr) != 0) {
|
if (next_arg (&arg_num, &arg_ptr) != 0) {
|
||||||
g_string_printf (nmc->return_text, _("Error: %s argument is missing."), selector);
|
g_string_printf (nmc->return_text, _("Error: %s argument is missing."), selector);
|
||||||
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
|
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
|
||||||
goto error;
|
goto finish;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2810,6 +2812,7 @@ do_connection_down (NmCli *nmc, int argc, char **argv)
|
|||||||
if (!g_slist_find (queue, active))
|
if (!g_slist_find (queue, active))
|
||||||
queue = g_slist_prepend (queue, g_object_ref (active));
|
queue = g_slist_prepend (queue, g_object_ref (active));
|
||||||
} else {
|
} else {
|
||||||
|
if (!nmc->complete)
|
||||||
g_printerr (_("Error: '%s' is not an active connection.\n"), *arg_ptr);
|
g_printerr (_("Error: '%s' is not an active connection.\n"), *arg_ptr);
|
||||||
g_string_printf (nmc->return_text, _("Error: not all active connections found."));
|
g_string_printf (nmc->return_text, _("Error: not all active connections found."));
|
||||||
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
|
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
|
||||||
@@ -2822,7 +2825,10 @@ do_connection_down (NmCli *nmc, int argc, char **argv)
|
|||||||
if (!queue) {
|
if (!queue) {
|
||||||
g_string_printf (nmc->return_text, _("Error: no active connection provided."));
|
g_string_printf (nmc->return_text, _("Error: no active connection provided."));
|
||||||
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
|
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
|
||||||
goto error;
|
goto finish;
|
||||||
|
} else if (nmc->complete) {
|
||||||
|
g_slist_free (queue);
|
||||||
|
goto finish;
|
||||||
}
|
}
|
||||||
queue = g_slist_reverse (queue);
|
queue = g_slist_reverse (queue);
|
||||||
|
|
||||||
@@ -2848,7 +2854,7 @@ do_connection_down (NmCli *nmc, int argc, char **argv)
|
|||||||
nm_client_deactivate_connection (nmc->client, active, NULL, NULL);
|
nm_client_deactivate_connection (nmc->client, active, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
error:
|
finish:
|
||||||
g_strfreev (arg_arr);
|
g_strfreev (arg_arr);
|
||||||
return nmc->return_value;
|
return nmc->return_value;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user