fix: use sudo -n detection for all distros instead of Debian hardcode

Debian systems were unconditionally set to use --ask-become-pass, added
to handle Debian 13's stricter default sudo configuration. This breaks
Debian-based systems with passwordless sudo (e.g. DietPi), causing the
installer to hang waiting for interactive input.

The sudo -n true check already used for non-Debian systems handles both
cases correctly:
- Default Debian 13 (sudo requires password): exits 1 -> --ask-become-pass
- Passwordless sudo (e.g. DietPi): exits 0 -> --become

Remove the Debian special-case and apply the same detection universally.
This commit is contained in:
Brandon Sherman 2026-04-13 16:58:01 -07:00
parent e7b42bd91d
commit 796642d7e0

View file

@ -251,23 +251,17 @@ if [ ! -f installer/install/tpot.yml ] && [ ! -f tpot.yml ];
fi fi
# Check type of sudo access # Check type of sudo access
if [ "$myANSIBLE_TAG" = "Debian" ]; sudo -n true > /dev/null 2>&1
# Debian 13 - sudo seems to apply stricter settings, we now ask for the become password if [ $? -eq 1 ];
then then
myANSIBLE_BECOME_OPTION="--become --ask-become-pass" myANSIBLE_BECOME_OPTION="--ask-become-pass"
echo "### sudo not acquired, setting ansible become option to ${myANSIBLE_BECOME_OPTION}."
echo "### Ansible will ask for the BECOME password which is typically the password you sudo with."
echo
else else
sudo -n true > /dev/null 2>&1 myANSIBLE_BECOME_OPTION="--become"
if [ $? -eq 1 ]; echo "### sudo acquired, setting ansible become option to ${myANSIBLE_BECOME_OPTION}."
then echo
myANSIBLE_BECOME_OPTION="--ask-become-pass"
echo "### sudo not acquired, setting ansible become option to ${myANSIBLE_BECOME_OPTION}."
echo "### Ansible will ask for the BECOME password which is typically the password you sudo with."
echo
else
myANSIBLE_BECOME_OPTION="--become"
echo "### sudo acquired, setting ansible become option to ${myANSIBLE_BECOME_OPTION}."
echo
fi
fi fi
# Run Ansible Playbook # Run Ansible Playbook