"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"
{
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"
[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;
# 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
;;
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