# wol(1) completion -*- shell-script -*- _wol() { local cur prev words cword split _init_completion -s -n : || return case $prev in --version | --help | --port | --passwd | --wait | -!(-*)[Vpw]) return ;; --host | --ipaddr | -!(-*)[hi]) # Broadcast addresses local PATH=$PATH:/sbin COMPREPLY=($({ ip addr show || ifconfig -a } 2>/dev/null | command sed -ne 's/.*[[:space:]]Bcast:\([^[:space:]]*\).*/\1/p' -ne \ 's/.*inet.*[[:space:]]brd[[:space:]]\([^[:space:]]*\).*/\1/p' -ne \ 's/.*[[:space:]]broadcast[[:space:]]\{1,\}\([^[:space:]]*\).*/\1/p')) _known_hosts_real -- "$cur" return ;; --file | -!(-*)f) _filedir return ;; esac $split && return if [[ $cur == -* ]]; then COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) [[ ${COMPREPLY-} == *= ]] && compopt -o nospace return fi _mac_addresses } && complete -F _wol wol # ex: filetype=sh