CasperSecurity

Current Path : /usr/share/bash-completion/completions/
Upload File :
Current File : //usr/share/bash-completion/completions/tipc

# tipc(8) completion                                       -*- shell-script -*-

_tipc_media()
{
    local optind=$1

    if ((cword == optind)); then
        COMPREPLY=($(compgen -W 'media' -- $cur))
        return 0
    elif ((cword == optind + 1)); then
        COMPREPLY=($(compgen -W 'udp eth ib' -- $cur))
        return 0
    fi

    return 1
}

_tipc_bearer()
{
    local optind=$1
    local media i

    if _tipc_media $optind; then
        return
    fi

    for ((i = 0; i < cword; i++)); do
        if [[ ${words[i]} == 'media' ]]; then
            media=${words[i + 1]}
        fi
    done

    if ((cword == optind + 2)); then
        case "$media" in
            "udp")
                COMPREPLY=($(compgen -W 'name' -- $cur))
                ;;
            "eth" | "ib")
                COMPREPLY=($(compgen -W 'device' -- $cur))
                ;;
        esac
    elif ((cword == optind + 3)); then
        case "$media" in
            "udp")
                local names=$(tipc bearer list 2>/dev/null | awk -F: '/^udp:/ {print $2}')
                COMPREPLY=($(compgen -W '$names' -- $cur))
                ;;
            "eth")
                local interfaces=$(command ls /sys/class/net/)
                COMPREPLY=($(compgen -W '$interfaces' -- $cur))
                ;;
        esac
    fi
}

_tipc_link_opts()
{
    COMPREPLY=($(compgen -W 'priority tolerance window' -- $cur))
}

_tipc_link()
{
    local optind=$1
    local filter=$2

    if ((cword == optind)); then
        COMPREPLY=($(compgen -W 'link' -- $cur))
    elif ((cword == optind + 1)); then
        # awk drops link state and last trailing :
        local links=$(tipc link list 2>/dev/null |
            awk '{print substr($1, 0, length($1))}')
        local -a exclude
        [[ $filter == peers ]] && exclude=(-X broadcast-link)
        COMPREPLY=($(compgen "${exclude[@]}" -W '$links' -- $cur))
    fi
}

_tipc()
{
    local cur prev words cword optind i p
    _init_completion || return

    optind=1
    COMPREPLY=()

    # Flags can be placed anywhere in the commandline
    case "$cur" in
        -*)
            COMPREPLY=($(compgen -W '-h --help' -- $cur))
            return
            ;;
    esac

    if ((cword == 1)); then
        COMPREPLY=($(compgen -W 'bearer link media nametable node socket' -- $cur))
        return
    fi

    case "${words[optind]}" in
        bearer)
            ((optind++))

            if ((cword == optind)); then
                COMPREPLY=($(compgen -W 'enable disable set get list' -- $cur))
                return
            fi

            case "${words[optind]}" in
                enable)
                    local media params
                    ((optind++))

                    if ((cword < optind + 4)); then
                        _tipc_bearer $optind
                        return
                    fi

                    for ((i = 0; i < cword; i++)); do
                        if [[ ${words[i]} == 'media' ]]; then
                            media=${words[i + 1]}
                        fi
                    done
                    case "$media" in
                        "udp")
                            declare -a params=("localip" "localport" "remoteip"
                                "remoteport" "domain" "priority")
                            ;;
                        "eth" | "ib")
                            declare -a params=("domain" "priority")
                            ;;
                        *)
                            return
                            ;;
                    esac

                    # If the previous word was a known parameter, we assume a value for
                    # that key. Note that this would break if the user attempts to use
                    # a known key as value.
                    for i in "${params[@]}"; do
                        if [[ $prev == "$i" ]]; then
                            return
                        fi
                    done

                    # In order not to print already used options, we remove them
                    for p in "${words[@]}"; do
                        for i in "${params[@]}"; do
                            if [[ $p == "$i" ]]; then
                                params=("${params[@]/$i/}")
                            fi
                        done
                    done

                    COMPREPLY=($(compgen -W '${params[@]}' -- $cur))
                    ;;
                disable)
                    ((optind++))

                    _tipc_bearer $optind
                    ;;
                get)
                    ((optind++))

                    if ((cword == optind)); then
                        _tipc_link_opts
                    elif ((cword >= optind + 1)); then
                        _tipc_bearer $((optind + 1))
                    fi
                    ;;
                set)
                    ((optind++))

                    if ((cword == optind)); then
                        _tipc_link_opts
                    elif ((cword >= optind + 2)); then
                        _tipc_bearer $((optind + 2))
                    fi
                    ;;
            esac
            ;;
        link)
            ((optind++))

            if ((cword == optind)); then
                COMPREPLY=($(compgen -W 'get set list statistics' -- $cur))
                return
            fi

            case "${words[optind]}" in
                get)
                    ((optind++))

                    if ((cword == optind)); then
                        _tipc_link_opts
                    elif ((cword >= optind + 1)); then
                        _tipc_link $((optind + 1)) "peers"
                    fi
                    ;;
                set)
                    ((optind++))

                    if ((cword == optind)); then
                        _tipc_link_opts
                    elif ((cword >= optind + 2)); then
                        _tipc_link $((optind + 2)) "peers"
                    fi
                    ;;
                statistics)
                    ((optind++))

                    if ((cword == optind)); then
                        COMPREPLY=($(compgen -W 'show reset' -- $cur))
                        return
                    fi

                    case "${words[optind]}" in
                        show | reset)
                            _tipc_link $((optind + 1))
                            ;;
                    esac
                    ;;
            esac
            ;;
        media)
            ((optind++))

            if ((cword == optind)); then
                COMPREPLY=($(compgen -W 'get set list' -- $cur))
                return
            fi

            case "${words[optind]}" in
                get)
                    ((optind++))

                    if ((cword == optind)); then
                        _tipc_link_opts
                    elif ((cword >= optind + 1)); then
                        _tipc_media $((optind + 1))
                    fi
                    ;;
                set)
                    ((optind++))

                    if ((cword == optind)); then
                        _tipc_link_opts
                    elif ((cword >= optind + 2)); then
                        _tipc_media $((optind + 2))
                    fi
                    ;;
            esac
            ;;
        nametable)
            ((optind++))

            if ((cword == optind)); then
                COMPREPLY=($(compgen -W 'show' -- $cur))
            fi
            ;;
        node)
            ((optind++))

            if ((cword == optind)); then
                COMPREPLY=($(compgen -W 'list get set' -- $cur))
                return
            fi

            case "${words[optind]}" in
                get | set)
                    ((optind++))

                    if ((cword == optind)); then
                        COMPREPLY=($(compgen -W 'address netid' -- $cur))
                    fi
                    ;;
            esac
            ;;
        socket)
            ((optind++))

            if ((cword == optind)); then
                COMPREPLY=($(compgen -W 'list' -- $cur))
            fi
            ;;
    esac
} &&
    complete -F _tipc tipc

# ex: filetype=sh
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY