diff --git a/src/linux/Dockerfile-centos b/src/linux/Dockerfile-centos index edda0784..c97abac7 100644 --- a/src/linux/Dockerfile-centos +++ b/src/linux/Dockerfile-centos @@ -22,7 +22,7 @@ RUN mkdir -p /usr/share/bunkerweb/deps && \ # Nginx COPY src/linux/nginx.repo /etc/yum.repos.d/nginx.repo -RUN dnf install yum-utils -y && \ +RUN dnf install yum-utils redhat-lsb-core -y && \ dnf install nginx-1.22.1 -y # Compile and install dependencies diff --git a/src/linux/fpm-centos b/src/linux/fpm-centos index 043efd8b..d9da775a 100644 --- a/src/linux/fpm-centos +++ b/src/linux/fpm-centos @@ -8,5 +8,5 @@ --url "https://www.bunkerweb.io" --maintainer "Bunkerity " --after-install /usr/share/bunkerweb/scripts/postinstall.sh ---after-remove /usr/share/bunkerweb/scripts/afterRemove.sh +--after-remove /usr/share/bunkerweb/scripts/afterRemoveRPM.sh /usr/share/bunkerweb/=/usr/share/bunkerweb/ /usr/bin/bwcli=/usr/bin/bwcli /etc/bunkerweb/=/etc/bunkerweb /var/tmp/bunkerweb/=/var/tmp/bunkerweb /var/cache/bunkerweb/=/var/cache/bunkerweb /lib/systemd/system/bunkerweb.service=/lib/systemd/system/bunkerweb.service /lib/systemd/system/bunkerweb-ui.service=/lib/systemd/system/bunkerweb-ui.service /var/lib/bunkerweb=/var/lib/bunkerweb /etc/letsencrypt=/etc/letsencrypt \ No newline at end of file diff --git a/src/linux/fpm-debian b/src/linux/fpm-debian index d80034c1..7fd5f074 100644 --- a/src/linux/fpm-debian +++ b/src/linux/fpm-debian @@ -8,5 +8,5 @@ --url "https://www.bunkerweb.io" --maintainer "Bunkerity " --after-install /usr/share/bunkerweb/scripts/postinstall.sh ---after-remove /usr/share/bunkerweb/scripts/afterRemove.sh +--after-remove /usr/share/bunkerweb/scripts/afterRemoveDEB.sh /usr/share/bunkerweb/=/usr/share/bunkerweb/ /usr/bin/bwcli=/usr/bin/bwcli /etc/bunkerweb/=/etc/bunkerweb /var/tmp/bunkerweb/=/var/tmp/bunkerweb /var/cache/bunkerweb/=/var/cache/bunkerweb /lib/systemd/system/bunkerweb.service=/lib/systemd/system/bunkerweb.service /lib/systemd/system/bunkerweb-ui.service=/lib/systemd/system/bunkerweb-ui.service /var/lib/bunkerweb=/var/lib/bunkerweb /etc/letsencrypt=/etc/letsencrypt \ No newline at end of file diff --git a/src/linux/fpm-fedora b/src/linux/fpm-fedora index 95ff1533..1bdfaf4a 100644 --- a/src/linux/fpm-fedora +++ b/src/linux/fpm-fedora @@ -8,5 +8,5 @@ --url "https://www.bunkerweb.io" --maintainer "Bunkerity " --after-install /usr/share/bunkerweb/scripts/postinstall.sh ---after-remove /usr/share/bunkerweb/scripts/afterRemove.sh +--after-remove /usr/share/bunkerweb/scripts/afterRemoveRPM.sh /usr/share/bunkerweb/=/usr/share/bunkerweb/ /usr/bin/bwcli=/usr/bin/bwcli /etc/bunkerweb/=/etc/bunkerweb /var/tmp/bunkerweb/=/var/tmp/bunkerweb /var/cache/bunkerweb/=/var/cache/bunkerweb /lib/systemd/system/bunkerweb.service=/lib/systemd/system/bunkerweb.service /lib/systemd/system/bunkerweb-ui.service=/lib/systemd/system/bunkerweb-ui.service /var/lib/bunkerweb=/var/lib/bunkerweb /etc/letsencrypt=/etc/letsencrypt \ No newline at end of file diff --git a/src/linux/fpm-ubuntu b/src/linux/fpm-ubuntu index 10968ccf..d9713fde 100644 --- a/src/linux/fpm-ubuntu +++ b/src/linux/fpm-ubuntu @@ -7,6 +7,6 @@ --url "https://www.bunkerweb.io" --maintainer "Bunkerity " --after-install /usr/share/bunkerweb/scripts/postinstall.sh ---after-remove /usr/share/bunkerweb/scripts/afterRemove.sh +--after-remove /usr/share/bunkerweb/scripts/afterRemoveDEB.sh --deb-no-default-config-files /usr/share/bunkerweb/=/usr/share/bunkerweb/ /usr/bin/bwcli=/usr/bin/bwcli /etc/bunkerweb/=/etc/bunkerweb /var/tmp/bunkerweb/=/var/tmp/bunkerweb /var/cache/bunkerweb/=/var/cache/bunkerweb /lib/systemd/system/bunkerweb.service=/lib/systemd/system/bunkerweb.service /lib/systemd/system/bunkerweb-ui.service=/lib/systemd/system/bunkerweb-ui.service /var/lib/bunkerweb=/var/lib/bunkerweb /etc/letsencrypt=/etc/letsencrypt \ No newline at end of file diff --git a/src/linux/scripts/afterRemove.sh b/src/linux/scripts/afterRemoveDEB.sh similarity index 100% rename from src/linux/scripts/afterRemove.sh rename to src/linux/scripts/afterRemoveDEB.sh diff --git a/src/linux/scripts/afterRemoveRPM.sh b/src/linux/scripts/afterRemoveRPM.sh new file mode 100644 index 00000000..c70ab326 --- /dev/null +++ b/src/linux/scripts/afterRemoveRPM.sh @@ -0,0 +1,121 @@ +#!/bin/bash + +# Function to run a command and check its return code +function do_and_check_cmd() { + output=$("$@" 2>&1) + ret="$?" + if [ $ret -ne 0 ] ; then + echo "❌ Error from command : $*" + echo "$output" + exit $ret + else + echo "✔️ Success: $*" + echo "$output" + fi + return 0 +} + +function reload_systemd() { + do_and_check_cmd systemctl daemon-reload + do_and_check_cmd systemctl reset-failed +} + +# remove a systemd service +function remove_systemd_service { + service=$1 + service_file="/lib/systemd/system/$service.service" + echo "checking service $service with $service_file file " + if [ -f "$service_file" ]; then + echo "ℹ️ Remove $service service" + do_and_check_cmd systemctl stop $service + do_and_check_cmd systemctl disable $service + do_and_check_cmd rm -f "$service_file" + reload_systemd + else + echo "$service_file not found" + fi +} + +function remove { + echo "Package is being uninstalled" + + # Stop nginx + if systemctl is-active nginx; then + echo "ℹ️ Stop nginx service" + do_and_check_cmd systemctl stop nginx + fi + + remove_systemd_service "bunkerweb" + remove_systemd_service "bunkerweb-ui" + + # Remove /usr/share/bunkerweb + if test -e "/usr/share/bunkerweb"; then + echo "ℹ️ Remove /usr/share/bunkerweb" + do_and_check_cmd rm -rf /usr/share/bunkerweb + fi + + # Remove /etc/bunkerweb + if test -e "/var/tmp/bunkerweb"; then + echo "ℹ️ Remove /var/tmp/bunkerweb" + do_and_check_cmd rm -rf /var/tmp/bunkerweb + fi + + # Remove /var/lib/bunkerweb + if test -e "/var/cache/bunkerweb"; then + echo "ℹ️ Remove /var/cache/bunkerweb" + do_and_check_cmd rm -rf /var/cache/bunkerweb + fi + + # Remove /usr/bin/bwcli + if test -f "/usr/bin/bwcli"; then + echo "ℹ️ Remove /usr/bin/bwcli" + do_and_check_cmd rm -f /usr/bin/bwcli + fi + + echo "ℹ️ BunkerWeb successfully uninstalled" +} + +function purge() { + echo "Package is being purged" + remove + + # Remove /var/lib/bunkerweb + if test -e "/var/lib/bunkerweb"; then + echo "ℹ️ Remove /var/lib/bunkerweb" + do_and_check_cmd rm -rf /var/lib/bunkerweb + fi + + # Remove /var/tmp/bunkerweb/variables.env + if test -d "/etc/bunkerweb"; then + echo "ℹ️ Remove /etc/bunkerweb" + do_and_check_cmd rm -rf /etc/bunkerweb + fi + + echo "ℹ️ BunkerWeb successfully purged" +} + +# Check if we are root +if [ $(id -u) -ne 0 ] ; then + echo "❌ Run me as root" + exit 1 +fi + +# Detect OS +OS=$(lsb_release -is | tr '[:upper:]' '[:lower:]') +if ! [[ "$OS" =~ (debian|ubuntu|centos|fedora) ]]; then + echo "❌ Unsupported Operating System" + exit 1 +fi + +# Check if the package is being upgraded or uninstalled +if [ "$1" = "0" ]; then + # Call the remove function + remove + purge +elif [ "$1" = "1" ]; then + # Call the purge function + echo "Package is being upgraded" +else + echo "Error" + exit 0 +fi \ No newline at end of file diff --git a/tests/Dockerfile-centos b/tests/Dockerfile-centos index 80240d54..bdb369b7 100644 --- a/tests/Dockerfile-centos +++ b/tests/Dockerfile-centos @@ -1,7 +1,5 @@ FROM quay.io/centos/centos:stream8 -RUN yum install -y initscripts # for old "service" - ENV container=docker RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \ @@ -13,13 +11,8 @@ rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ rm -f /lib/systemd/system/basic.target.wants/*;\ rm -f /lib/systemd/system/anaconda.target.wants/*; -COPY linux/nginx.repo /etc/yum.repos.d/nginx.repo +RUN dnf -y install sudo -RUN dnf install php-fpm curl yum-utils epel-release -y && \ - dnf install nginx-1.20.2 -y +VOLUME [/sys/fs/cgroup] -COPY ./packages/centos/*.rpm /opt - -VOLUME /run /tmp - -CMD /usr/sbin/init \ No newline at end of file +CMD ["/usr/sbin/init"] \ No newline at end of file diff --git a/tests/Upgrade.py b/tests/Upgrade.py index 0f364b88..ef556eb7 100644 --- a/tests/Upgrade.py +++ b/tests/Upgrade.py @@ -28,8 +28,8 @@ if distro == "ubuntu": with tempfile.NamedTemporaryFile(mode='w') as f: f.write(bash_script) f.flush() - subprocess.run(["docker", "cp", f.name, "systemd-ubuntu:/tmp/install_nginx.sh"]) - result = subprocess.run(["docker", "exec", "-it", "systemd-ubuntu", "bash", "/tmp/install_nginx.sh"]) + subprocess.run(["docker", "cp", f.name, "systemd-ubuntu:/data/install_nginx.sh"]) + result = subprocess.run(["docker", "exec", "-it", "systemd-ubuntu", "bash", "/data/install_nginx.sh"]) if result.returncode != 0: bunkerweb_logs = subprocess.run(["docker", "exec", "-it", "systemd-ubuntu", "bash", "-c", "systemctl status bunkerweb.service"], capture_output=True) print("Logs from bunkerweb:", bunkerweb_logs.stdout.decode()) @@ -107,11 +107,10 @@ if distro == "ubuntu": print("❌ /usr/bin/bwcli found.") #Checking Removing test try: - if not os.path.isdir("/usr/share/bunkerweb") and not os.path.isdir("/var/tmp/bunkerweb") and not os.path.isdir("/var/cache/bunkerweb") and not os.path.isfile("/usr/bin/bwcli"): - test_results["Removing test"] = "OK" - else: + if os.path.exists("/usr/share/bunkerweb") or os.path.exists("/var/tmp/bunkerweb") or os.path.exists("/var/cache/bunkerweb") or os.path.exists("/usr/bin/bwcli"): test_results["Removing test"] = "KO" - sys.exit(1) + else: + test_results["Removing test"] = "OK" except: test_results["Removing test"] = "KO" @@ -132,10 +131,10 @@ if distro == "ubuntu": print("❌ /etc/bunkerweb found.") #Checking Purging test try: - if not os.path.isdir("/var/lib/bunkerweb") and not os.path.isdir("/etc/bunkerweb"): - test_results["Purging test"] = "OK" - else: + if os.path.isdir("/var/lib/bunkerweb") or os.path.isdir("/etc/bunkerweb"): test_results["Purging test"] = "KO" + else: + test_results["Purging test"] = "OK" except: test_results["Purging test"] = "KO" @@ -275,7 +274,7 @@ elif distro == "debian": print("❌ /usr/bin/bwcli found.") #Checking Removing test try: - if not os.path.isdir("/usr/share/bunkerweb") and not os.path.isdir("/var/tmp/bunkerweb") and not os.path.isdir("/var/cache/bunkerweb") and not os.path.isfile("/usr/bin/bwcli"): + if os.path.exists("/usr/share/bunkerweb") or os.path.exists("/var/tmp/bunkerweb") or os.path.exists("/var/cache/bunkerweb") or os.path.exists("/usr/bin/bwcli"): test_results["Removing test"] = "OK" else: test_results["Removing test"] = "KO" @@ -299,7 +298,7 @@ elif distro == "debian": print("❌ /etc/bunkerweb found.") #Checking Purging test try: - if not os.path.isdir("/var/lib/bunkerweb") and not os.path.isdir("/etc/bunkerweb"): + if os.path.isdir("/var/lib/bunkerweb") or os.path.isdir("/etc/bunkerweb"): test_results["Purging test"] = "OK" else: test_results["Purging test"] = "KO" @@ -341,7 +340,7 @@ elif distro == "debian": sys.exit(1) elif distro == "fedora": - test_results = {"Installation test": None, "Reloading test": None, "Removing test": None, "Purging test": None, "Upgrading test": None} + test_results = {"Installation test": None, "Reloading test": None, "Removing test": None, "Upgrading test": None} subprocess.run(["docker", "build", "-t", "fedora-image", "-f", "src/linux/Dockerfile-fedora", "."]) subprocess.run(["docker", "run", "-it", "--name", "fedora-container", "-v", "deb:/data", "fedora-image"]) subprocess.run(["docker", "run", "-d", "--name", "systemd-{}".format(distro), "--privileged", "-v", "/sys/fs/cgroup:/sys/fs/cgroup", "-v", "deb:/data", "jrei/systemd-fedora"]) @@ -391,13 +390,11 @@ elif distro == "fedora": if bunkerweb_state.stdout.decode().strip() != "active": bunkerweb_logs = subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "journalctl -u bunkerweb.service"], capture_output=True) print("❌ bunkerweb.service is not running. Logs:", bunkerweb_logs.stdout.decode()) - sys.exit(1) bunkerweb_ui_state = subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "systemctl is-active bunkerweb-ui.service"], capture_output=True) if bunkerweb_ui_state.stdout.decode().strip() != "active": bunkerweb_ui_logs = subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "journalctl -u bunkerweb-ui.service"], capture_output=True) print("❌ bunkerweb-ui.service is not running. Logs:", bunkerweb_ui_logs.stdout.decode()) - sys.exit(1) else: print("✔️ bunkerweb.service and bunkerweb-ui.service are running ✔️") #Checking Reloading test @@ -436,47 +433,35 @@ elif distro == "fedora": print("✔️ /usr/bin/bwcli not found.") else: print("❌ /usr/bin/bwcli found.") + + result = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "[ -d /var/lib/bunkerweb ]"], capture_output=True) + if result.returncode != 0: + print("✔️ /var/lib/bunkerweb not found.") + else: + print("❌ /var/lib/bunkerweb found.") + + result = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "[ -d /etc/bunkerweb ]"], capture_output=True) + if result.returncode != 0: + print("✔️ /etc/bunkerweb not found.") + else: + print("❌ /etc/bunkerweb found.") #Checking Removing test try: - if os.path.exists("/usr/share/bunkerweb") or os.path.exists("/var/tmp/bunkerweb") or os.path.exists("/var/cache/bunkerweb") or os.path.exists("/usr/bin/bwcli"): + if os.path.exists("/usr/share/bunkerweb") or os.path.exists("/var/tmp/bunkerweb") or os.path.exists("/var/cache/bunkerweb") or os.path.exists("/usr/bin/bwcli") or os.path.isdir("/var/lib/bunkerweb") or os.path.isdir("/etc/bunkerweb"): test_results["Removing test"] = "KO" else: test_results["Removing test"] = "OK" except: test_results["Removing test"] = "KO" - # Purging test - print("Purging bunkerweb...") - subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "dnf purge -y bunkerweb"]) - - result = subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "[ -d /var/lib/bunkerweb ]"], capture_output=True) - if result.returncode != 0: - print("✔️ /var/lib/bunkerweb not found.") - else: - print("❌ /var/lib/bunkerweb found.") - - result = subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "[ -d /etc/bunkerweb ]"], capture_output=True) - if result.returncode != 0: - print("✔️ /etc/bunkerweb not found.") - else: - print("❌ /etc/bunkerweb found.") - #Checking Purging test - try: - if not os.path.isdir("/var/lib/bunkerweb") and not os.path.isdir("/etc/bunkerweb"): - test_results["Purging test"] = "OK" - else: - test_results["Purging test"] = "KO" - except: - test_results["Purging test"] = "KO" - # Upgrading test print("Upgrading bunkerweb...") # Installing official package subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "sudo dnf remove -y nginx"]) - subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "sudo dnf install -y nginx=1.20.2-1~jammy"]) - subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "curl -s https://packagecloud.io/install/repositories/bunkerity/bunkerweb/script.deb.sh | sudo bash"]) - subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "sudo dnf update"]) - subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "sudo dnf install -y bunkerweb=1.4.5"]) + subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "sudo dnf install -y nginx-1.20.2"]) + subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "curl -s https://packagecloud.io/install/repositories/bunkerity/bunkerweb/script.rpm.sh | sudo bash"]) + subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "sudo dnf check-update"]) + subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "sudo dnf install -y bunkerweb-1.4.5"]) # Checking version old_version = subprocess.run(["docker", "exec", "-it", "systemd-fedora", "bash", "-c", "cat /usr/share/bunkerweb/VERSION"], capture_output=True) @@ -504,23 +489,29 @@ elif distro == "fedora": elif distro == "rhel": print("RHEL not supported yet.") + elif distro == "centos": + test_results = {"Installation test": None, "Reloading test": None, "Removing test": None, "Upgrading test": None} subprocess.run(["docker", "build", "-t", "centos-image", "-f", "src/linux/Dockerfile-centos", "."]) + # Building local systemd image + subprocess.run(["docker", "build", "-t", "centos", "-f", "tests/Dockerfile-centos", "."]) subprocess.run(["docker", "run", "-it", "--name", "centos-container", "-v", "deb:/data", "centos-image"]) - subprocess.run(["docker", "run", "-d", "--name", "systemd-{}".format(distro), "--privileged", "-v", "/sys/fs/cgroup:/sys/fs/cgroup", "-v", "deb:/data", "quay.io/centos/centos:stream8"]) + subprocess.run(["docker", "run", "-d", "--name", "systemd-{}".format(distro), "--privileged", "-v", "/sys/fs/cgroup:/sys/fs/cgroup", "-v", "deb:/data", "centos"]) # Installing test print("Installing bunkerweb...") bash_script = """ + dnf install yum-utils epel-release redhat-lsb-core -y dnf install -y nginx-1.22.1 - apt install /data/bunkerweb.deb -y + dnf install /data/bunkerweb.rpm -y """ with tempfile.NamedTemporaryFile(mode='w') as f: f.write(bash_script) f.flush() - subprocess.run(["docker", "cp", f.name, "systemd-centos:/tmp/install_nginx.sh"]) - result = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "/tmp/install_nginx.sh"]) + subprocess.run(["docker", "cp", "src/linux/nginx.repo", "systemd-centos:/etc/yum.repos.d/nginx.repo"]) + subprocess.run(["docker", "cp", f.name, "systemd-centos:/data/install_nginx.sh"]) + result = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "/data/install_nginx.sh"]) if result.returncode != 0: bunkerweb_logs = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "systemctl status bunkerweb.service"], capture_output=True) print("Logs from bunkerweb:", bunkerweb_logs.stdout.decode()) @@ -553,27 +544,25 @@ elif distro == "centos": if bunkerweb_state.stdout.decode().strip() != "active": bunkerweb_logs = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "journalctl -u bunkerweb.service"], capture_output=True) print("❌ bunkerweb.service is not running. Logs:", bunkerweb_logs.stdout.decode()) - sys.exit(1) bunkerweb_ui_state = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "systemctl is-active bunkerweb-ui.service"], capture_output=True) if bunkerweb_ui_state.stdout.decode().strip() != "active": bunkerweb_ui_logs = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "journalctl -u bunkerweb-ui.service"], capture_output=True) print("❌ bunkerweb-ui.service is not running. Logs:", bunkerweb_ui_logs.stdout.decode()) - sys.exit(1) + else: + print("✔️ bunkerweb.service and bunkerweb-ui.service are running ✔️") #Checking Reloading test try: if bunkerweb_state.stdout.decode().strip() == "active": test_results["Reloading test"] = "OK" else: test_results["Reloading test"] = "KO" - sys.exit(1) except: test_results["Reloading test"] = "KO" - sys.exit(1) # Removing test print("Removing bunkerweb...") - subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "apt remove -y bunkerweb"]) + subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "dnf remove -y bunkerweb"]) result = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "[ -d /usr/share/bunkerweb ]"], capture_output=True) if result.returncode != 0: @@ -598,20 +587,7 @@ elif distro == "centos": print("✔️ /usr/bin/bwcli not found.") else: print("❌ /usr/bin/bwcli found.") - #Checking Removing test - try: - if not os.path.isdir("/usr/share/bunkerweb") and not os.path.isdir("/var/tmp/bunkerweb") and not os.path.isdir("/var/cache/bunkerweb") and not os.path.isfile("/usr/bin/bwcli"): - test_results["Removing test"] = "OK" - else: - test_results["Removing test"] = "KO" - sys.exit(1) - except: - test_results["Removing test"] = "KO" - - # Purging test - print("Purging bunkerweb...") - subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "apt purge -y bunkerweb"]) - + result = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "[ -d /var/lib/bunkerweb ]"], capture_output=True) if result.returncode != 0: print("✔️ /var/lib/bunkerweb not found.") @@ -623,32 +599,30 @@ elif distro == "centos": print("✔️ /etc/bunkerweb not found.") else: print("❌ /etc/bunkerweb found.") - #Checking Purging test + #Checking Removing test try: - if not os.path.isdir("/var/lib/bunkerweb") and not os.path.isdir("/etc/bunkerweb"): - test_results["Purging test"] = "OK" + if os.path.exists("/usr/share/bunkerweb") or os.path.exists("/var/tmp/bunkerweb") or os.path.exists("/var/cache/bunkerweb") or os.path.exists("/usr/bin/bwcli") or os.path.isdir("/var/lib/bunkerweb") or os.path.isdir("/etc/bunkerweb"): + test_results["Removing test"] = "KO" else: - test_results["Purging test"] = "KO" - sys.exit(1) + test_results["Removing test"] = "OK" except: - test_results["Purging test"] = "KO" - sys.exit(1) + test_results["Removing test"] = "KO" # Upgrading test print("Upgrading bunkerweb...") # Installing official package - subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "sudo apt remove -y nginx"]) - subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "sudo apt install -y nginx=1.20.2-1~jammy"]) - subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "curl -s https://packagecloud.io/install/repositories/bunkerity/bunkerweb/script.deb.sh | sudo bash"]) - subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "sudo apt update"]) - subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "sudo apt install -y bunkerweb=1.4.5"]) + subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "sudo dnf remove -y nginx"]) + subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "sudo dnf install -y nginx-1.20.2"]) + subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "curl -s https://packagecloud.io/install/repositories/bunkerity/bunkerweb/script.rpm.sh | sudo bash"]) + subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "sudo dnf check-update"]) + subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "sudo dnf install -y bunkerweb-1.4.5"]) # Checking version - old_version = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "cat /usr/share/bunkerweb/VERSION"], capture_output=True) + old_version = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "cat /opt/bunkerweb/VERSION"], capture_output=True) print("Old version:", old_version.stdout.decode().strip()) # Upgrading package - subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "sudo apt install -y /data/bunkerweb.deb"]) + subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "sudo dnf install -y /data/bunkerweb.rpm"]) # Checking version new_version = subprocess.run(["docker", "exec", "-it", "systemd-centos", "bash", "-c", "cat /usr/share/bunkerweb/VERSION"], capture_output=True) @@ -658,10 +632,8 @@ elif distro == "centos": test_results["Upgrading test"] = "OK" else: test_results["Upgrading test"] = "KO" - sys.exit(1) except: test_results["Upgrading test"] = "KO" - sys.exit(1) # Print summary for key, value in test_results.items():