From 340ffbe5e8bde3b94b18870db7de542db8493a02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20K=C3=B6nig?= Date: Wed, 6 Aug 2025 12:51:08 +0200 Subject: [PATCH] Add pihole-FTL bash completion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Christian König --- advanced/bash-completion/pihole-ftl.bash | 53 ++++++++++++++++++++++++ automated install/basic-install.sh | 1 + automated install/uninstall.sh | 1 + 3 files changed, 55 insertions(+) create mode 100644 advanced/bash-completion/pihole-ftl.bash diff --git a/advanced/bash-completion/pihole-ftl.bash b/advanced/bash-completion/pihole-ftl.bash new file mode 100644 index 00000000..f83ed16e --- /dev/null +++ b/advanced/bash-completion/pihole-ftl.bash @@ -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 diff --git a/automated install/basic-install.sh b/automated install/basic-install.sh index daacb9a3..4e823ec4 100755 --- a/automated install/basic-install.sh +++ b/automated install/basic-install.sh @@ -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 diff --git a/automated install/uninstall.sh b/automated install/uninstall.sh index e8dec36a..dfe0871e 100755 --- a/automated install/uninstall.sh +++ b/automated install/uninstall.sh @@ -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"