You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.4 KiB
Plaintext
80 lines
2.4 KiB
Plaintext
2 years ago
|
_pihole() {
|
||
|
local cur prev opts opts_admin opts_checkout opts_chronometer opts_debug opts_interface opts_logging opts_privacy opts_query opts_update opts_version
|
||
|
COMPREPLY=()
|
||
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
||
|
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
||
|
prev2="${COMP_WORDS[COMP_CWORD-2]}"
|
||
|
|
||
|
case "${prev}" in
|
||
|
"pihole")
|
||
|
opts="admin blacklist checkout chronometer debug disable enable flush help logging query reconfigure regex restartdns status tail uninstall updateGravity updatePihole version wildcard whitelist arpflush"
|
||
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
||
|
;;
|
||
|
"whitelist"|"blacklist"|"wildcard"|"regex")
|
||
|
opts_lists="\--delmode \--noreload \--quiet \--list \--nuke"
|
||
|
COMPREPLY=( $(compgen -W "${opts_lists}" -- ${cur}) )
|
||
|
;;
|
||
|
"admin")
|
||
|
opts_admin="celsius fahrenheit interface kelvin password privacylevel"
|
||
|
COMPREPLY=( $(compgen -W "${opts_admin}" -- ${cur}) )
|
||
|
;;
|
||
|
"checkout")
|
||
|
opts_checkout="core ftl web master dev"
|
||
|
COMPREPLY=( $(compgen -W "${opts_checkout}" -- ${cur}) )
|
||
|
;;
|
||
|
"chronometer")
|
||
|
opts_chronometer="\--exit \--json \--refresh"
|
||
|
COMPREPLY=( $(compgen -W "${opts_chronometer}" -- ${cur}) )
|
||
|
;;
|
||
|
"debug")
|
||
|
opts_debug="-a"
|
||
|
COMPREPLY=( $(compgen -W "${opts_debug}" -- ${cur}) )
|
||
|
;;
|
||
|
"logging")
|
||
|
opts_logging="on off 'off noflush'"
|
||
|
COMPREPLY=( $(compgen -W "${opts_logging}" -- ${cur}) )
|
||
|
;;
|
||
|
"query")
|
||
|
opts_query="-adlist -all -exact"
|
||
|
COMPREPLY=( $(compgen -W "${opts_query}" -- ${cur}) )
|
||
|
;;
|
||
|
"updatePihole"|"-up")
|
||
|
opts_update="--check-only"
|
||
|
COMPREPLY=( $(compgen -W "${opts_update}" -- ${cur}) )
|
||
|
;;
|
||
|
"version")
|
||
|
opts_version="\--admin \--current \--ftl \--hash \--latest \--pihole"
|
||
|
COMPREPLY=( $(compgen -W "${opts_version}" -- ${cur}) )
|
||
|
;;
|
||
|
"interface")
|
||
|
if ( [[ "$prev2" == "admin" ]] || [[ "$prev2" == "-a" ]] ); then
|
||
|
opts_interface="$(cat /proc/net/dev | cut -d: -s -f1)"
|
||
|
COMPREPLY=( $(compgen -W "${opts_interface}" -- ${cur}) )
|
||
|
else
|
||
|
return 1
|
||
|
fi
|
||
|
;;
|
||
|
"privacylevel")
|
||
|
if ( [[ "$prev2" == "admin" ]] || [[ "$prev2" == "-a" ]] ); then
|
||
|
opts_privacy="0 1 2 3"
|
||
|
COMPREPLY=( $(compgen -W "${opts_privacy}" -- ${cur}) )
|
||
|
else
|
||
|
return 1
|
||
|
fi
|
||
|
;;
|
||
|
"core"|"admin"|"ftl")
|
||
|
if [[ "$prev2" == "checkout" ]]; then
|
||
|
opts_checkout="master dev"
|
||
|
COMPREPLY=( $(compgen -W "${opts_checkout}" -- ${cur}) )
|
||
|
else
|
||
|
return 1
|
||
|
fi
|
||
|
;;
|
||
|
*)
|
||
|
return 1
|
||
|
;;
|
||
|
esac
|
||
|
return 0
|
||
|
}
|
||
|
complete -F _pihole pihole
|