Add pihole-FTL bash completion

Signed-off-by: Christian König <github@yubiuser.dev>
This commit is contained in:
Christian König 2025-08-06 12:51:08 +02:00
parent 75286a1626
commit 340ffbe5e8
No known key found for this signature in database
3 changed files with 55 additions and 0 deletions

View File

@ -0,0 +1,53 @@
#!/bin/bash
#
# Bash completion script for pihole-FTL
#
# This completion script provides tab completion for some pihole-FTL CLI flags and commands.
_pihole_ftl_completion() {
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
# Selected commands and flags
opts="version tag branch help dnsmasq-test regex-test lua sqlite3 --config --teleporter --gen-x509 --read-x509 gravity ntp gzip dhcp-discover arp-scan idn2 sha256sum verify --default-gateway"
# Handle subcommands for specific commands
case "${prev}" in
# Gravity subcommands
gravity)
mapfile -t COMPREPLY < <(compgen -W "checkList" -- "${cur}")
return 0
;;
# SQLite3 special modes
sqlite3)
mapfile -t COMPREPLY < <(compgen -W "-h -ni" -- "${cur}")
return 0
;;
# ARP scan options
arp-scan)
mapfile -t COMPREPLY < <(compgen -W "-a -x" -- "${cur}")
return 0
;;
# IDN2 options
idn2)
mapfile -t COMPREPLY < <(compgen -W "--decode" -- "${cur}")
return 0
;;
# NTP options
ntp)
mapfile -t COMPREPLY < <(compgen -W "--update" -- "${cur}")
return 0
;;
esac
# Default completion
mapfile -t COMPREPLY < <(compgen -W "${opts}" -- "${cur}")
}
# Register the completion function for pihole-FTL
complete -F _pihole_ftl_completion pihole-FTL

View File

@ -1138,6 +1138,7 @@ installScripts() {
install -o "${USER}" -Dm755 -t "${PI_HOLE_INSTALL_DIR}" ./advanced/Scripts/COL_TABLE
install -o "${USER}" -Dm755 -t "${PI_HOLE_BIN_DIR}" pihole
install -Dm644 ./advanced/bash-completion/pihole /etc/bash_completion.d/pihole
install -Dm644 ./advanced/bash-completion/pihole-ftl.bash /etc/bash_completion.d/pihole-FTL
printf "%b %b %s\\n" "${OVER}" "${TICK}" "${str}"
else

View File

@ -89,6 +89,7 @@ removePiholeFiles() {
${SUDO} rm -rf /opt/pihole/ &> /dev/null
${SUDO} rm -f /usr/local/bin/pihole &> /dev/null
${SUDO} rm -f /etc/bash_completion.d/pihole &> /dev/null
${SUDO} rm -f /etc/bash_completion.d/pihole-FTL &> /dev/null
${SUDO} rm -f /etc/sudoers.d/pihole &> /dev/null
echo -e " ${TICK} Removed config files"