diff options
author | Thomas Haller <thaller@redhat.com> | 2015-09-18 10:49:19 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2015-09-18 13:14:44 +0200 |
commit | 7405d5c7b742fd429d6d4815a416c35f363752bd (patch) | |
tree | 45c53cb4b6d633ba6974a0a86f1c30000a240596 | |
parent | 4dffbf8f6abe48a5677e5d702cb107f9946c824f (diff) | |
download | NetworkManager-7405d5c7b742fd429d6d4815a416c35f363752bd.tar.gz |
nmcli: extend `nmcli device set` command to accept explicit ifname specifier
Without it, you cannot set the properties of a device named "help".
Now you can with:
$ nmcli device set ifname help autoconnect no
-rw-r--r-- | clients/cli/devices.c | 10 | ||||
-rw-r--r-- | clients/cli/nmcli-completion | 7 | ||||
-rw-r--r-- | man/nmcli.1.in | 2 |
3 files changed, 14 insertions, 5 deletions
diff --git a/clients/cli/devices.c b/clients/cli/devices.c index 66f4ad3967..b8b4a23fdf 100644 --- a/clients/cli/devices.c +++ b/clients/cli/devices.c @@ -259,7 +259,7 @@ usage (void) "COMMAND := { status | show | connect | disconnect | delete | wifi }\n\n" " status\n\n" " show [<ifname>]\n\n" - " set <ifname> [autoconnect yes|no] [managed yes|no]\n\n" + " set [ifname] <ifname> [autoconnect yes|no] [managed yes|no]\n\n" " connect <ifname>\n\n" " disconnect <ifname> ...\n\n" " delete <ifname> ...\n\n" @@ -338,7 +338,8 @@ usage_device_set (void) { g_printerr (_("Usage: nmcli device set { ARGUMENTS | help }\n" "\n" - "ARGUMENTS := <ifname> { PROPERTY [ PROPERTY ... ] }\n" + "ARGUMENTS := DEVICE { PROPERTY [ PROPERTY ... ] }\n" + "DEVICE := [ifname] <ifname> \n" "PROPERTY := { autoconnect { yes | no } |\n" " { managed { yes | no }\n" "\n" @@ -1925,6 +1926,11 @@ do_device_set (NmCli *nmc, int argc, char **argv) [DEV_SET_MANAGED] = { -1 }, }; + if (argc >= 1 && g_strcmp0 (*argv, "ifname") == 0) { + argc--; + argv++; + } + if (argc == 0) { g_string_printf (nmc->return_text, _("Error: No interface specified.")); nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; diff --git a/clients/cli/nmcli-completion b/clients/cli/nmcli-completion index a37e1fcc78..909c00e299 100644 --- a/clients/cli/nmcli-completion +++ b/clients/cli/nmcli-completion @@ -596,6 +596,7 @@ _nmcli_compl_ARGS() # some commands expect a connection as parameter. This connection can either be given # as id|uuid|path|apath. Parse that connection parameter. +# Actually, it can also ask for a device name, like `nmcli device set [ifname] <ifname>` _nmcli_compl_ARGS_CONNECTION() { if ! _nmcli_array_has_value OPTIONS "${words[0]}"; then @@ -1274,9 +1275,11 @@ _nmcli() ;; se|set) if [[ ${#words[@]} -eq 3 ]]; then - _nmcli_compl_COMMAND_nl "${words[2]}" "$(_nmcli_dev_status DEVICE)" + _nmcli_compl_COMMAND_nl "${words[2]}" "$(printf "ifname\n%s" "$(_nmcli_con_show NAME)")" else - _nmcli_array_delete_at words 0 2 + _nmcli_array_delete_at words 0 1 + OPTIONS=(ifname) + _nmcli_compl_ARGS_CONNECTION && return 0 OPTIONS=(autoconnect managed) _nmcli_compl_ARGS fi diff --git a/man/nmcli.1.in b/man/nmcli.1.in index 49da0252d8..15781c4964 100644 --- a/man/nmcli.1.in +++ b/man/nmcli.1.in @@ -774,7 +774,7 @@ examined. To get information for a specific device, the interface name has to be provided. .TP .TP -.B set <ifname> [autoconnect yes|no] [managed yes|no] +.B set [ifname] <ifname> [autoconnect yes|no] [managed yes|no] .br Set device properties. .TP |