cli/device: use nmc_do_cmd()
This commit is contained in:
@@ -1401,6 +1401,12 @@ do_devices_status (NmCli *nmc, int argc, char **argv)
|
|||||||
NmcOutputField *tmpl, *arr;
|
NmcOutputField *tmpl, *arr;
|
||||||
size_t tmpl_len;
|
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) {
|
while (argc > 0) {
|
||||||
g_printerr (_("Unknown parameter: %s\n"), *argv);
|
g_printerr (_("Unknown parameter: %s\n"), *argv);
|
||||||
argc--;
|
argc--;
|
||||||
@@ -1421,8 +1427,7 @@ do_devices_status (NmCli *nmc, int argc, char **argv)
|
|||||||
if (error) {
|
if (error) {
|
||||||
g_string_printf (nmc->return_text, _("Error: 'device status': %s"), error->message);
|
g_string_printf (nmc->return_text, _("Error: 'device status': %s"), error->message);
|
||||||
g_error_free (error);
|
g_error_free (error);
|
||||||
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
|
return NMC_RESULT_ERROR_USER_INPUT;
|
||||||
goto error;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Add headers */
|
/* Add headers */
|
||||||
@@ -1440,9 +1445,6 @@ do_devices_status (NmCli *nmc, int argc, char **argv)
|
|||||||
g_free (devices);
|
g_free (devices);
|
||||||
|
|
||||||
return NMC_RESULT_SUCCESS;
|
return NMC_RESULT_SUCCESS;
|
||||||
|
|
||||||
error:
|
|
||||||
return nmc->return_value;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static NMCResultCode
|
static NMCResultCode
|
||||||
@@ -1454,6 +1456,9 @@ do_device_show (NmCli *nmc, int argc, char **argv)
|
|||||||
int i;
|
int i;
|
||||||
gboolean ret;
|
gboolean ret;
|
||||||
|
|
||||||
|
if (!nmc->mode_specified)
|
||||||
|
nmc->multiline_output = TRUE; /* multiline mode is default for 'device show' */
|
||||||
|
|
||||||
if (argc == 1)
|
if (argc == 1)
|
||||||
ifname = *argv;
|
ifname = *argv;
|
||||||
else if (argc > 1) {
|
else if (argc > 1) {
|
||||||
@@ -3447,6 +3452,14 @@ error:
|
|||||||
static NMCResultCode
|
static NMCResultCode
|
||||||
do_device_wifi (NmCli *nmc, int argc, char **argv)
|
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)
|
if (argc == 0)
|
||||||
nmc->return_value = do_device_wifi_list (nmc, argc-1, argv+1);
|
nmc->return_value = do_device_wifi_list (nmc, argc-1, argv+1);
|
||||||
else if (argc > 0) {
|
else if (argc > 0) {
|
||||||
@@ -3630,6 +3643,17 @@ error:
|
|||||||
static NMCResultCode
|
static NMCResultCode
|
||||||
do_device_lldp (NmCli *nmc, int argc, char **argv)
|
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)
|
if (argc == 0)
|
||||||
nmc->return_value = do_device_lldp_list (nmc, argc, argv);
|
nmc->return_value = do_device_lldp_list (nmc, argc, argv);
|
||||||
else if (matches (*argv, "list") == 0)
|
else if (matches (*argv, "list") == 0)
|
||||||
@@ -3711,11 +3735,23 @@ nmcli_device_tab_completion (const char *text, int start, int end)
|
|||||||
return match_array;
|
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
|
NMCResultCode
|
||||||
do_devices (NmCli *nmc, int argc, char **argv)
|
do_devices (NmCli *nmc, int argc, char **argv)
|
||||||
{
|
{
|
||||||
GError *error = NULL;
|
|
||||||
|
|
||||||
/* Register polkit agent */
|
/* Register polkit agent */
|
||||||
nmc_start_polkit_agent_start_try (nmc);
|
nmc_start_polkit_agent_start_try (nmc);
|
||||||
|
|
||||||
@@ -3727,116 +3763,10 @@ do_devices (NmCli *nmc, int argc, char **argv)
|
|||||||
/* Check whether NetworkManager is running */
|
/* Check whether NetworkManager is running */
|
||||||
if (!nm_client_get_nm_running (nmc->client)) {
|
if (!nm_client_get_nm_running (nmc->client)) {
|
||||||
g_string_printf (nmc->return_text, _("Error: NetworkManager is not running."));
|
g_string_printf (nmc->return_text, _("Error: NetworkManager is not running."));
|
||||||
nmc->return_value = NMC_RESULT_ERROR_NM_NOT_RUNNING;
|
return NMC_RESULT_ERROR_NM_NOT_RUNNING;
|
||||||
return nmc->return_value;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (argc == 0) {
|
return nmc_do_cmd (nmc, device_cmds, *argv, argc, argv);
|
||||||
if (!nmc_terse_option_check (nmc->print_output, nmc->required_fields, &error))
|
|
||||||
goto opt_error;
|
|
||||||
nmc->return_value = do_devices_status (nmc, 0, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Reference in New Issue
Block a user