PHP 7.4.33
Preview: nmcli Size: 3.75 KB
//usr/share/bash-completion/completions/nmcli

# nmcli(1) completion

_nmcli_array_delete_at()
{
    eval "local ARRAY=(\"\${$1[@]}\")"
    local i
    local tmp=()
    local lower=$2
    local upper=${3:-$lower}

    # for some reason the following fails. So this clumsy workaround...
    #   A=(a "")
    #   echo " >> ${#A[@]}"
    #    >> 2
    #   A=("${A[@]:1}")
    #   echo " >> ${#A[@]}"
    #    >> 0
    # ... seriously???

    for i in "${!ARRAY[@]}"; do
        if [[ "$i" -lt "$2" || "$i" -gt "${3-$2}" ]]; then
            tmp=("${tmp[@]}" "${ARRAY[$i]}")
        fi
    done
    eval "$1=(\"\${tmp[@]}\")"
}

_nmcli()
{
    local cur prev words cword i output
    _init_completion || return

    # we don't care about any arguments after the current cursor position
    # because we only parse from left to right. So, if there are some arguments
    # right of the cursor, just ignore them. Also don't care about ${words[0]}.
    _nmcli_array_delete_at words $((cword+1)) ${#words[@]}
    _nmcli_array_delete_at words 0

    # _init_completion returns the words with all the quotes and escaping
    # characters. We don't care about them, drop them at first.
    for i in ${!words[@]}; do
        words[i]="$(printf '%s' "${words[i]}" | xargs printf '%s\n' 2>/dev/null || true)"
    done

    # In case the cursor is not at the end of the line,
    # $cur consists of spaces that we want do remove.
    # For example: `nmcli connection modify id  <TAB>  lo`
    if [[ "$cur" =~ ^[[:space:]]+ ]]; then
        cur=''
    fi

    output="$(nmcli --complete-args "${words[@]}" 2>/dev/null)"

    # Bail out early if we're completing a file name
    if [ $? = 65 ]; then
        compopt -o default
        COMPREPLY=()
        return 0
    fi

    local IFS=$'\n'
    COMPREPLY=( $( compgen -W '$output' -- $cur ) )

    # Now escape special characters (spaces, single and double quotes),
    # so that the argument is really regarded a single argument by bash.
    # See http://stackoverflow.com/questions/1146098/properly-handling-spaces-and-quotes-in-bash-completion
    local escaped_single_quote="'\''"
    local i=0
    local entry
    for entry in ${COMPREPLY[*]}
    do
        if [[ "${cur:0:1}" == "'" ]]; then
            # started with single quote, escaping only other single quotes
            # [']bla'bla"bla\bla bla --> [']bla'\''bla"bla\bla bla
            COMPREPLY[$i]="${entry//\'/${escaped_single_quote}}"
        elif [[ "${cur:0:1}" == '"' ]]; then
            # started with double quote, escaping all double quotes and all backslashes
            # ["]bla'bla"bla\bla bla --> ["]bla'bla\"bla\\bla bla
            entry="${entry//\\/\\\\}"
            entry="${entry//\"/\\\"}"
            entry="${entry//!/\"\\!\"}"
            COMPREPLY[$i]="$entry"
        else
            # no quotes in front, escaping _everything_
            # [ ]bla'bla"bla\bla bla --> [ ]bla\'bla\"bla\\bla\ bla
            entry="${entry//\\/\\\\}"
            entry="${entry//\'/\\\'}"
            entry="${entry//\"/\\\"}"
            entry="${entry// /\\ }"
            entry="${entry//\(/\\(}"
            entry="${entry//)/\\)}"
            entry="${entry//!/\\!}"
            entry="${entry//&/\\&}"
            COMPREPLY[$i]="$entry"
        fi
        (( i++ ))
    done

    # Work-around bash_completion issue where bash interprets a colon
    # as a separator.
    # Colon is escaped here. Change "\\:" back to ":".
    # See also:
    # http://stackoverflow.com/questions/28479216/how-to-give-correct-suggestions-to-tab-complete-when-my-words-contains-colons
    # http://stackoverflow.com/questions/2805412/bash-completion-for-maven-escapes-colon/12495727
    i=0
    for entry in ${COMPREPLY[*]}
    do
        entry="${entry//\\\\:/:}"
        COMPREPLY[$i]=${entry}
        (( i++ ))
    done

} &&
complete -F _nmcli nmcli

# ex: ts=4 sw=4 et filetype=sh

Directory Contents

Dirs: 0 × Files: 143

Name Size Perms Modified Actions
447 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
204 B lrw-r--r-- 2020-10-08 18:05:10
Edit Download
639 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
2.04 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
971 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
726 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
1.89 KB lrw-r--r-- 2018-06-22 11:11:49
Edit Download
7.83 KB lrw-r--r-- 2018-06-22 11:11:49
Edit Download
426 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
546 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
1.47 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
445 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
501 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
920 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
504 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
460 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
484 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
509 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
725 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
3.63 KB lrw-r--r-- 2018-06-22 11:11:49
Edit Download
3.42 KB lrw-r--r-- 2025-06-25 10:53:48
Edit Download
335 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
526 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
26.76 KB lrw-r--r-- 2024-05-23 08:36:02
Edit Download
1.15 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
9.97 KB lrw-r--r-- 2021-04-12 15:26:33
Edit Download
15.77 KB lrw-r--r-- 2025-07-09 16:16:22
Edit Download
3.50 KB lrw-r--r-- 2024-04-06 13:22:13
Edit Download
1.16 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
23.51 KB lrw-r--r-- 2021-04-23 20:07:10
Edit Download
721 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
566 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
1.79 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
916 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
695 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
3.08 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
10.36 KB lrw-r--r-- 2025-03-11 09:51:09
Edit Download
874 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
787 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
684 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
383 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
524 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
677 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
1.36 KB lrw-r--r-- 2018-01-10 10:24:00
Edit Download
935 B lrw-r--r-- 2018-01-10 10:24:00
Edit Download
815 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
81.50 KB lrw-r--r-- 2025-06-13 22:14:31
Edit Download
81.50 KB lrw-r--r-- 2025-06-13 22:14:31
Edit Download
11.41 KB lrw-r--r-- 2025-06-04 10:39:46
Edit Download
2.76 KB lrw-r--r-- 2018-08-15 16:22:00
Edit Download
1007 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
2.23 KB lrw-r--r-- 2018-06-22 11:11:49
Edit Download
938 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
1.13 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
576 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
1.39 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
514 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
529 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
5.75 KB lrw-r--r-- 2018-06-22 11:11:49
Edit Download
1.77 KB lrw-r--r-- 2018-06-22 11:11:49
Edit Download
3.16 KB lrw-r--r-- 2024-04-08 09:18:53
Edit Download
949 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
1.44 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
3.65 KB lrw-r--r-- 2018-06-22 11:11:49
Edit Download
1.52 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
4.15 KB lrw-r--r-- 2018-06-22 11:11:49
Edit Download
683 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
1.68 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
1.92 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
1018 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
1.94 KB lrw-r--r-- 2024-04-06 13:22:13
Edit Download
1.28 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
1.04 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
1.66 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
1.03 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
1.14 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
599 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
412 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
638 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
821 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
714 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
841 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
528 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
487 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
1.88 KB lrw-r--r-- 2017-06-02 08:54:58
Edit Download
500 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
3.75 KB lrw-r--r-- 2022-10-11 07:42:10
Edit Download
1.14 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
520 B lrw-r--r-- 2020-12-11 14:48:46
Edit Download
1.22 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
286 B lrw-r--r-- 2024-04-06 13:40:46
Edit Download
387 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
3.89 KB lrw-r--r-- 2018-06-22 11:11:49
Edit Download
1.30 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
482 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
679 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
655 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
784 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
568 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
6.90 KB lrw-r--r-- 2018-06-22 11:11:49
Edit Download
432 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
929 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
1.06 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
864 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
667 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
625 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
790 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
2.31 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
1.77 KB lrw-r--r-- 2024-07-02 21:04:19
Edit Download
440 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
2.53 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
1.96 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
864 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
635 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
743 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
1.49 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
720 B lrw-r--r-- 2025-07-15 09:13:47
Edit Download
13.26 KB lrw-r--r-- 2025-04-22 01:58:20
Edit Download
6.63 KB lrw-r--r-- 2025-04-22 01:57:53
Edit Download
1.87 KB lrw-r--r-- 2018-06-22 11:11:49
Edit Download
2.29 KB lrw-r--r-- 2018-06-22 11:11:49
Edit Download
2.05 KB lrw-r--r-- 2018-06-22 11:11:49
Edit Download
1.91 KB lrw-r--r-- 2018-06-22 11:11:49
Edit Download
1.33 KB lrw-r--r-- 2018-06-22 11:11:49
Edit Download
1.86 KB lrw-r--r-- 2018-06-22 11:11:49
Edit Download
3.11 KB lrw-r--r-- 2018-06-22 11:11:49
Edit Download
4.75 KB lrw-r--r-- 2018-06-22 11:11:49
Edit Download
1.18 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
2.91 KB lrw-r--r-- 2018-06-22 11:11:49
Edit Download
1.99 KB lrw-r--r-- 2020-12-11 15:24:01
Edit Download
604 B lrw-r--r-- 2024-02-22 12:23:28
Edit Download
3.68 KB lrw-r--r-- 2018-06-22 11:11:49
Edit Download
655 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
809 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
475 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
657 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
727 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
634 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
1.34 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
535 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
1.16 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download
431 B lrw-r--r-- 2024-04-06 13:02:51
Edit Download
1.24 KB lrw-r--r-- 2024-04-06 13:02:51
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).