From b25880533ee83bb4a6f68a941ae2d2fd5de6af9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= Date: Fri, 23 Oct 2015 12:22:36 +0200 Subject: [PATCH] cli: improve error reporting of missing 'ifname' parameter Example: before: $ nmcli c add type gsm con-nameX aaa ifname fsd Error: 'ifname' argument is required. now: $ nmcli c add type gsm con-nameX aaa ifname fsd Error: mandatory 'ifname' not seen before 'con-nameX'. (cherry picked from commit 696a443e982fd62397acb94849e181be58a37fcf) --- clients/cli/connections.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/clients/cli/connections.c b/clients/cli/connections.c index 85b1c7df56..55bde29aa0 100644 --- a/clients/cli/connections.c +++ b/clients/cli/connections.c @@ -5796,15 +5796,20 @@ do_connection_add (NmCli *nmc, int argc, char **argv) || strcmp (type, NM_SETTING_VLAN_SETTING_NAME) == 0) ifname_mandatory = FALSE; - if (!ifname && ifname_mandatory && nmc->ask) { - ifname = ifname_ask = nmc_readline (_("Interface name [*]: ")); - if (!ifname) - ifname = ifname_ask = g_strdup ("*"); - } if (!ifname && ifname_mandatory) { - g_string_printf (nmc->return_text, _("Error: 'ifname' argument is required.")); - nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; - goto error; + if (nmc->ask) { + ifname = ifname_ask = nmc_readline (_("Interface name [*]: ")); + if (!ifname) + ifname = ifname_ask = g_strdup ("*"); + } else { + if (!*argv) + g_string_printf (nmc->return_text, _("Error: 'ifname' argument is required.")); + else + g_string_printf (nmc->return_text, _("Error: mandatory 'ifname' not seen before '%s'."), + *argv); + nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; + goto error; + } } if (ifname) { if (!nm_utils_iface_valid_name (ifname) && strcmp (ifname, "*") != 0) {