HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //snap/core20/current/usr/share/bash-completion/completions/arp
# arp(8) completion                                 -*- shell-script -*-

_arp()
{
    local cur prev words cword
    _init_completion || return

    case $prev in
        --device|-!(-*)i)
            _available_interfaces -a
            return
            ;;
        --protocol|-!(-*)[Ap])
            # TODO protocol/address family
            return
            ;;
        --file|-!(-*)f)
            _filedir
            return
            ;;
        --hw-type|-!(-*)[Ht])
            # TODO: parse from --help output?
            COMPREPLY=( $(compgen -W 'ash ether ax25 netrom rose arcnet \
                dlci fddi hippi irda x25 eui64' -- "$cur") )
            return
            ;;
    esac

    if [[ $cur == -* ]]; then
        COMPREPLY=( $(compgen -W '$(_parse_help "$1")' -- "$cur") )
        return
    fi

    local args
    _count_args "" "@(--device|--protocol|--file|--hw-type|-!(-*)[iApfHt])"
    case $args in
        1)
            local ips=$("$1" -an | command sed -ne \
                's/.*(\([0-9]\{1,3\}\(\.[0-9]\{1,3\}\)\{3\}\)).*/\1/p')
            COMPREPLY=( $(compgen -W '$ips' -- "$cur") )
            ;;
        2)
            # TODO if -d mode: "pub"; if not -f mode: hw_addr
            # TODO hw_addr is a configured interface with --use-device/-*D*
            ;;
        3)
            # TODO netmask|pub|temp if -s mode
            ;;
        4)
            # TODO netmask value if previous was "netmask"
            ;;
        5)
            # TODO "pub" if 3rd was "netmask"
            ;;
    esac
} &&
complete -F _arp arp

# ex: filetype=sh