mirror of
https://github.com/pi-hole/pi-hole.git
synced 2024-11-28 09:03:17 +00:00
Overhaul uninstall script
Signed-off-by: Christian König <github@yubiuser.dev>
This commit is contained in:
parent
f08c54e166
commit
c47f8c2cd6
13 changed files with 48 additions and 120 deletions
|
@ -409,6 +409,8 @@ package_manager_detect() {
|
||||||
PKG_INSTALL="${PKG_MANAGER} -qq --no-install-recommends install"
|
PKG_INSTALL="${PKG_MANAGER} -qq --no-install-recommends install"
|
||||||
# grep -c will return 1 if there are no matches. This is an acceptable condition, so we OR TRUE to prevent set -e exiting the script.
|
# grep -c will return 1 if there are no matches. This is an acceptable condition, so we OR TRUE to prevent set -e exiting the script.
|
||||||
PKG_COUNT="${PKG_MANAGER} -s -o Debug::NoLocking=true upgrade | grep -c ^Inst || true"
|
PKG_COUNT="${PKG_MANAGER} -s -o Debug::NoLocking=true upgrade | grep -c ^Inst || true"
|
||||||
|
# The command we will use to remove packages (used in the uninstaller)
|
||||||
|
PKG_REMOVE="${PKG_MANAGER} -y remove --purge"
|
||||||
# Update package cache
|
# Update package cache
|
||||||
update_package_cache || exit 1
|
update_package_cache || exit 1
|
||||||
|
|
||||||
|
@ -425,7 +427,8 @@ package_manager_detect() {
|
||||||
PKG_INSTALL="${PKG_MANAGER} install -y"
|
PKG_INSTALL="${PKG_MANAGER} install -y"
|
||||||
# CentOS package manager returns 100 when there are packages to update so we need to || true to prevent the script from exiting.
|
# CentOS package manager returns 100 when there are packages to update so we need to || true to prevent the script from exiting.
|
||||||
PKG_COUNT="${PKG_MANAGER} check-update | grep -E '(.i686|.x86|.noarch|.arm|.src|.riscv64)' | wc -l || true"
|
PKG_COUNT="${PKG_MANAGER} check-update | grep -E '(.i686|.x86|.noarch|.arm|.src|.riscv64)' | wc -l || true"
|
||||||
|
# The command we will use to remove packages (used in the uninstaller)
|
||||||
|
PKG_REMOVE="${PKG_MANAGER} remove -y"
|
||||||
# If neither apt-get or yum/dnf package managers were found
|
# If neither apt-get or yum/dnf package managers were found
|
||||||
else
|
else
|
||||||
# we cannot install required packages
|
# we cannot install required packages
|
||||||
|
@ -483,8 +486,6 @@ build_dependency_package(){
|
||||||
|
|
||||||
# Remove the build dependencies when we've installed them
|
# Remove the build dependencies when we've installed them
|
||||||
if [ -n "${REMOVE_RPM_BUILD}" ]; then
|
if [ -n "${REMOVE_RPM_BUILD}" ]; then
|
||||||
local PKG_REMOVE
|
|
||||||
PKG_REMOVE="${PKG_MANAGER} remove -y"
|
|
||||||
eval "${PKG_REMOVE}" "rpm-build"
|
eval "${PKG_REMOVE}" "rpm-build"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -38,68 +38,25 @@ fi
|
||||||
readonly PI_HOLE_FILES_DIR="/etc/.pihole"
|
readonly PI_HOLE_FILES_DIR="/etc/.pihole"
|
||||||
SKIP_INSTALL="true"
|
SKIP_INSTALL="true"
|
||||||
source "${PI_HOLE_FILES_DIR}/automated install/basic-install.sh"
|
source "${PI_HOLE_FILES_DIR}/automated install/basic-install.sh"
|
||||||
# setupVars set in basic-install.sh
|
|
||||||
source "${setupVars}"
|
|
||||||
|
|
||||||
# package_manager_detect() sourced from basic-install.sh
|
# package_manager_detect() sourced from basic-install.sh
|
||||||
package_manager_detect
|
package_manager_detect
|
||||||
|
|
||||||
# Uninstall packages used by the Pi-hole
|
|
||||||
DEPS=("${INSTALLER_COMMON_DEPS[@]}" "${PIHOLE_COMMON_DEPS[@]}" "${OS_CHECK_COMMON_DEPS[@]}" "${INSTALLER_DEPS[@]}" "${PIHOLE_DEPS[@]}" "${OS_CHECK_DEPS[@]}")
|
|
||||||
|
|
||||||
# Compatibility
|
removeMetaPackage() {
|
||||||
if [ -x "$(command -v apt-get)" ]; then
|
# Purge Pi-hole meta package
|
||||||
# Debian Family
|
|
||||||
PKG_REMOVE=("${PKG_MANAGER}" -y remove --purge)
|
|
||||||
package_check() {
|
|
||||||
dpkg-query -W -f='${Status}' "$1" 2>/dev/null | grep -c "ok installed"
|
|
||||||
}
|
|
||||||
elif [ -x "$(command -v rpm)" ]; then
|
|
||||||
# Fedora Family
|
|
||||||
PKG_REMOVE=("${PKG_MANAGER}" remove -y)
|
|
||||||
package_check() {
|
|
||||||
rpm -qa | grep "^$1-" > /dev/null
|
|
||||||
}
|
|
||||||
else
|
|
||||||
echo -e " ${CROSS} OS distribution not supported"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
removeAndPurge() {
|
|
||||||
# Purge dependencies
|
|
||||||
echo ""
|
echo ""
|
||||||
for i in "${DEPS[@]}"; do
|
echo -ne " ${INFO} Removing Pi-hole meta package...";
|
||||||
if package_check "${i}" > /dev/null; then
|
eval "${SUDO}" "${PKG_REMOVE}" "pihole-meta" &> /dev/null;
|
||||||
while true; do
|
echo -e "${OVER} ${INFO} Removed Pi-hole meta package";
|
||||||
read -rp " ${QST} Do you wish to remove ${COL_WHITE}${i}${COL_NC} from your system? [Y/N] " answer
|
|
||||||
case ${answer} in
|
|
||||||
[Yy]* )
|
|
||||||
echo -ne " ${INFO} Removing ${i}...";
|
|
||||||
${SUDO} "${PKG_REMOVE[@]}" "${i}" &> /dev/null;
|
|
||||||
echo -e "${OVER} ${INFO} Removed ${i}";
|
|
||||||
break;;
|
|
||||||
[Nn]* ) echo -e " ${INFO} Skipped ${i}"; break;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
else
|
|
||||||
echo -e " ${INFO} Package ${i} not installed"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Remove dnsmasq config files
|
|
||||||
${SUDO} rm -f /etc/dnsmasq.conf /etc/dnsmasq.conf.orig /etc/dnsmasq.d/*-pihole*.conf &> /dev/null
|
|
||||||
echo -e " ${TICK} Removing dnsmasq config files"
|
|
||||||
|
|
||||||
# Call removeNoPurge to remove Pi-hole specific files
|
|
||||||
removeNoPurge
|
|
||||||
}
|
}
|
||||||
|
|
||||||
removeNoPurge() {
|
removePiholeFiles() {
|
||||||
# Only web directories/files that are created by Pi-hole should be removed
|
# Only web directories/files that are created by Pi-hole should be removed
|
||||||
echo -ne " ${INFO} Removing Web Interface..."
|
echo -ne " ${INFO} Removing Web Interface..."
|
||||||
${SUDO} rm -rf /var/www/html/admin &> /dev/null
|
${SUDO} rm -rf /var/www/html/admin &> /dev/null
|
||||||
${SUDO} rm -rf /var/www/html/pihole &> /dev/null
|
|
||||||
${SUDO} rm -f /var/www/html/index.lighttpd.orig &> /dev/null
|
|
||||||
|
|
||||||
# If the web directory is empty after removing these files, then the parent html directory can be removed.
|
# If the web directory is empty after removing these files, then the parent html directory can be removed.
|
||||||
if [ -d "/var/www/html" ]; then
|
if [ -d "/var/www/html" ]; then
|
||||||
|
@ -126,45 +83,6 @@ removeNoPurge() {
|
||||||
echo -e " ${TICK} Removed /etc/cron.d/pihole"
|
echo -e " ${TICK} Removed /etc/cron.d/pihole"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if package_check lighttpd > /dev/null; then
|
|
||||||
# Attempt to preserve backwards compatibility with older versions
|
|
||||||
if [[ -f /etc/lighttpd/lighttpd.conf.orig ]]; then
|
|
||||||
${SUDO} mv /etc/lighttpd/lighttpd.conf.orig /etc/lighttpd/lighttpd.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -f /etc/lighttpd/external.conf ]]; then
|
|
||||||
${SUDO} rm /etc/lighttpd/external.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Fedora-based
|
|
||||||
if [[ -f /etc/lighttpd/conf.d/pihole-admin.conf ]]; then
|
|
||||||
${SUDO} rm /etc/lighttpd/conf.d/pihole-admin.conf
|
|
||||||
conf=/etc/lighttpd/lighttpd.conf
|
|
||||||
tconf=/tmp/lighttpd.conf.$$
|
|
||||||
if awk '!/^include "\/etc\/lighttpd\/conf\.d\/pihole-admin\.conf"$/{print}' \
|
|
||||||
$conf > $tconf && mv $tconf $conf; then
|
|
||||||
:
|
|
||||||
else
|
|
||||||
rm $tconf
|
|
||||||
fi
|
|
||||||
${SUDO} chown root:root $conf
|
|
||||||
${SUDO} chmod 644 $conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Debian-based
|
|
||||||
if [[ -f /etc/lighttpd/conf-available/pihole-admin.conf ]]; then
|
|
||||||
if is_command lighty-disable-mod ; then
|
|
||||||
${SUDO} lighty-disable-mod pihole-admin > /dev/null || true
|
|
||||||
fi
|
|
||||||
${SUDO} rm /etc/lighttpd/conf-available/15-pihole-admin.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo -e " ${TICK} Removed lighttpd configs"
|
|
||||||
fi
|
|
||||||
|
|
||||||
${SUDO} rm -f /etc/dnsmasq.d/adList.conf &> /dev/null
|
|
||||||
${SUDO} rm -f /etc/dnsmasq.d/01-pihole.conf &> /dev/null
|
|
||||||
${SUDO} rm -f /etc/dnsmasq.d/06-rfc6761.conf &> /dev/null
|
|
||||||
${SUDO} rm -rf /var/log/*pihole* &> /dev/null
|
${SUDO} rm -rf /var/log/*pihole* &> /dev/null
|
||||||
${SUDO} rm -rf /var/log/pihole/*pihole* &> /dev/null
|
${SUDO} rm -rf /var/log/pihole/*pihole* &> /dev/null
|
||||||
${SUDO} rm -rf /etc/pihole/ &> /dev/null
|
${SUDO} rm -rf /etc/pihole/ &> /dev/null
|
||||||
|
@ -234,23 +152,11 @@ removeNoPurge() {
|
||||||
If you need help, reach out to us on GitHub, Discourse, Reddit or Twitter
|
If you need help, reach out to us on GitHub, Discourse, Reddit or Twitter
|
||||||
Reinstall at any time: ${COL_WHITE}curl -sSL https://install.pi-hole.net | bash${COL_NC}
|
Reinstall at any time: ${COL_WHITE}curl -sSL https://install.pi-hole.net | bash${COL_NC}
|
||||||
|
|
||||||
${COL_LIGHT_RED}Please reset the DNS on your router/clients to restore internet connectivity
|
${COL_LIGHT_RED}Please reset the DNS on your router/clients to restore internet connectivity${COL_NC}
|
||||||
|
${INFO} Pi-hole's meta package has been removed, use the 'autoremove' function from your package manager to remove unused dependencies${COL_NC}
|
||||||
${COL_LIGHT_GREEN}Uninstallation Complete! ${COL_NC}"
|
${COL_LIGHT_GREEN}Uninstallation Complete! ${COL_NC}"
|
||||||
}
|
}
|
||||||
|
|
||||||
######### SCRIPT ###########
|
######### SCRIPT ###########
|
||||||
echo -e " ${INFO} Be sure to confirm if any dependencies should not be removed"
|
removeMetaPackage
|
||||||
while true; do
|
removePiholeFiles
|
||||||
echo -e " ${INFO} ${COL_YELLOW}The following dependencies may have been added by the Pi-hole install:"
|
|
||||||
echo -n " "
|
|
||||||
for i in "${DEPS[@]}"; do
|
|
||||||
echo -n "${i} "
|
|
||||||
done
|
|
||||||
echo "${COL_NC}"
|
|
||||||
read -rp " ${QST} Do you wish to go through each dependency for removal? (Choosing No will leave all dependencies installed) [Y/n] " answer
|
|
||||||
case ${answer} in
|
|
||||||
[Yy]* ) removeAndPurge; break;;
|
|
||||||
[Nn]* ) removeNoPurge; break;;
|
|
||||||
* ) removeAndPurge; break;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ ENV SCRIPTDIR=/opt/pihole
|
||||||
|
|
||||||
RUN mkdir -p $GITDIR $SCRIPTDIR /etc/pihole
|
RUN mkdir -p $GITDIR $SCRIPTDIR /etc/pihole
|
||||||
ADD . $GITDIR
|
ADD . $GITDIR
|
||||||
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $SCRIPTDIR/
|
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $GITDIR/advanced/Scripts/COL_TABLE $SCRIPTDIR/
|
||||||
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
|
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
|
||||||
|
|
||||||
RUN true && \
|
RUN true && \
|
||||||
|
|
|
@ -5,7 +5,7 @@ ENV SCRIPTDIR=/opt/pihole
|
||||||
|
|
||||||
RUN mkdir -p $GITDIR $SCRIPTDIR /etc/pihole
|
RUN mkdir -p $GITDIR $SCRIPTDIR /etc/pihole
|
||||||
ADD . $GITDIR
|
ADD . $GITDIR
|
||||||
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $SCRIPTDIR/
|
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $GITDIR/advanced/Scripts/COL_TABLE $SCRIPTDIR/
|
||||||
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
|
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
|
||||||
|
|
||||||
RUN true && \
|
RUN true && \
|
||||||
|
|
|
@ -5,7 +5,7 @@ ENV SCRIPTDIR=/opt/pihole
|
||||||
|
|
||||||
RUN mkdir -p $GITDIR $SCRIPTDIR /etc/pihole
|
RUN mkdir -p $GITDIR $SCRIPTDIR /etc/pihole
|
||||||
ADD . $GITDIR
|
ADD . $GITDIR
|
||||||
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $SCRIPTDIR/
|
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $GITDIR/advanced/Scripts/COL_TABLE $SCRIPTDIR/
|
||||||
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
|
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
|
||||||
|
|
||||||
RUN true && \
|
RUN true && \
|
||||||
|
|
|
@ -6,7 +6,7 @@ ENV SCRIPTDIR=/opt/pihole
|
||||||
|
|
||||||
RUN mkdir -p $GITDIR $SCRIPTDIR /etc/pihole
|
RUN mkdir -p $GITDIR $SCRIPTDIR /etc/pihole
|
||||||
ADD . $GITDIR
|
ADD . $GITDIR
|
||||||
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $SCRIPTDIR/
|
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $GITDIR/advanced/Scripts/COL_TABLE $SCRIPTDIR/
|
||||||
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
|
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
|
||||||
|
|
||||||
RUN true && \
|
RUN true && \
|
||||||
|
|
|
@ -6,7 +6,7 @@ ENV SCRIPTDIR=/opt/pihole
|
||||||
|
|
||||||
RUN mkdir -p $GITDIR $SCRIPTDIR /etc/pihole
|
RUN mkdir -p $GITDIR $SCRIPTDIR /etc/pihole
|
||||||
ADD . $GITDIR
|
ADD . $GITDIR
|
||||||
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $SCRIPTDIR/
|
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $GITDIR/advanced/Scripts/COL_TABLE $SCRIPTDIR/
|
||||||
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
|
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
|
||||||
|
|
||||||
RUN true && \
|
RUN true && \
|
||||||
|
|
|
@ -5,7 +5,7 @@ ENV SCRIPTDIR=/opt/pihole
|
||||||
|
|
||||||
RUN mkdir -p $GITDIR $SCRIPTDIR /etc/pihole
|
RUN mkdir -p $GITDIR $SCRIPTDIR /etc/pihole
|
||||||
ADD . $GITDIR
|
ADD . $GITDIR
|
||||||
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $SCRIPTDIR/
|
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $GITDIR/advanced/Scripts/COL_TABLE $SCRIPTDIR/
|
||||||
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
|
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
|
||||||
|
|
||||||
RUN true && \
|
RUN true && \
|
||||||
|
|
|
@ -5,7 +5,7 @@ ENV SCRIPTDIR=/opt/pihole
|
||||||
|
|
||||||
RUN mkdir -p $GITDIR $SCRIPTDIR /etc/pihole
|
RUN mkdir -p $GITDIR $SCRIPTDIR /etc/pihole
|
||||||
ADD . $GITDIR
|
ADD . $GITDIR
|
||||||
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $SCRIPTDIR/
|
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $GITDIR/advanced/Scripts/COL_TABLE $SCRIPTDIR/
|
||||||
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
|
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ ENV SCRIPTDIR=/opt/pihole
|
||||||
|
|
||||||
RUN mkdir -p $GITDIR $SCRIPTDIR /etc/pihole
|
RUN mkdir -p $GITDIR $SCRIPTDIR /etc/pihole
|
||||||
ADD . $GITDIR
|
ADD . $GITDIR
|
||||||
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $SCRIPTDIR/
|
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $GITDIR/advanced/Scripts/COL_TABLE $SCRIPTDIR/
|
||||||
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
|
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ ENV SCRIPTDIR=/opt/pihole
|
||||||
|
|
||||||
RUN mkdir -p $GITDIR $SCRIPTDIR /etc/pihole
|
RUN mkdir -p $GITDIR $SCRIPTDIR /etc/pihole
|
||||||
ADD . $GITDIR
|
ADD . $GITDIR
|
||||||
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $SCRIPTDIR/
|
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $GITDIR/advanced/Scripts/COL_TABLE $SCRIPTDIR/
|
||||||
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
|
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
|
|
@ -5,9 +5,8 @@ import subprocess
|
||||||
from textwrap import dedent
|
from textwrap import dedent
|
||||||
|
|
||||||
IMAGE = "pytest_pihole:test_container"
|
IMAGE = "pytest_pihole:test_container"
|
||||||
|
tick_box = "[✓]"
|
||||||
tick_box = "[\x1b[1;32m\u2713\x1b[0m]"
|
cross_box = "[✗]"
|
||||||
cross_box = "[\x1b[1;31m\u2717\x1b[0m]"
|
|
||||||
info_box = "[i]"
|
info_box = "[i]"
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -532,3 +532,25 @@ def test_package_manager_has_pihole_deps(host):
|
||||||
|
|
||||||
assert "No package" not in output.stdout
|
assert "No package" not in output.stdout
|
||||||
assert output.rc == 0
|
assert output.rc == 0
|
||||||
|
|
||||||
|
|
||||||
|
def test_meta_package_uninstall(host):
|
||||||
|
"""Confirms OS is able to install and uninstall the Pi-hole meta package"""
|
||||||
|
mock_command("dialog", {"*": ("", "0")}, host)
|
||||||
|
install = host.run(
|
||||||
|
"""
|
||||||
|
source /opt/pihole/basic-install.sh
|
||||||
|
package_manager_detect
|
||||||
|
build_dependency_package
|
||||||
|
install_dependent_packages
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
assert install.rc == 0
|
||||||
|
|
||||||
|
uninstall = host.run(
|
||||||
|
"""
|
||||||
|
source /opt/pihole/uninstall.sh
|
||||||
|
removeMetaPackage
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
assert uninstall.rc == 0
|
||||||
|
|
Loading…
Reference in a new issue