From 83915c116860452aef42097146189944baa8fbf7 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Fri, 4 Jul 2025 13:30:41 +0200 Subject: [PATCH] Update tools.func --- misc/tools.func | 48 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 34 insertions(+), 14 deletions(-) diff --git a/misc/tools.func b/misc/tools.func index 1793ce45..504a8f09 100644 --- a/misc/tools.func +++ b/misc/tools.func @@ -235,8 +235,14 @@ setup_mariadb() { DISTRO_CODENAME="$(awk -F= '/^VERSION_CODENAME=/{print $2}' /etc/os-release)" CURRENT_OS="$(awk -F= '/^ID=/{print $2}' /etc/os-release)" - msg_info "Setting up MariaDB $MARIADB_VERSION" - # grab dynamic latest LTS version + msg_info "Preparing MariaDB $MARIADB_VERSION" + + if ! curl -fsI http://mirror.mariadb.org/repo/ >/dev/null; then + msg_error "MariaDB mirror not reachable" + return 1 + fi + msg_ok "MariaDB mirror reachable" + if [[ "$MARIADB_VERSION" == "latest" ]]; then MARIADB_VERSION=$(curl -fsSL http://mirror.mariadb.org/repo/ | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+/' | @@ -245,9 +251,10 @@ setup_mariadb() { sort -Vr | head -n1) if [[ -z "$MARIADB_VERSION" ]]; then - msg_error "Could not determine latest GA MariaDB version" + msg_error "Failed to detect latest MariaDB version" return 1 fi + msg_ok "Latest version is $MARIADB_VERSION" fi local CURRENT_VERSION="" @@ -256,32 +263,45 @@ setup_mariadb() { fi if [[ "$CURRENT_VERSION" == "$MARIADB_VERSION" ]]; then - $STD msg_info "MariaDB $MARIADB_VERSION, upgrading" + msg_info "MariaDB $MARIADB_VERSION already present, updating if needed" $STD apt-get update $STD apt-get install --only-upgrade -y mariadb-server mariadb-client - $STD msg_ok "MariaDB upgraded to $MARIADB_VERSION" + msg_ok "MariaDB already up to date" return 0 fi if [[ -n "$CURRENT_VERSION" ]]; then - $STD msg_info "Upgrading MariaDB $CURRENT_VERSION to $MARIADB_VERSION" - $STD systemctl stop mariadb >/dev/null 2>&1 || true + msg_info "Removing MariaDB $CURRENT_VERSION" + systemctl stop mariadb >/dev/null 2>&1 || true $STD apt-get purge -y 'mariadb*' || true rm -f /etc/apt/sources.list.d/mariadb.list /etc/apt/trusted.gpg.d/mariadb.gpg - else - $STD msg_info "Setup MariaDB $MARIADB_VERSION" fi - curl -fsSL "https://mariadb.org/mariadb_release_signing_key.asc" | - gpg --dearmor -o /etc/apt/trusted.gpg.d/mariadb.gpg + if curl -fsSL "https://mariadb.org/mariadb_release_signing_key.asc" | + gpg --dearmor -o /etc/apt/trusted.gpg.d/mariadb.gpg; then + msg_ok "GPG key imported" + else + msg_error "Failed to import GPG key" + return 1 + fi echo "deb [signed-by=/etc/apt/trusted.gpg.d/mariadb.gpg] http://mirror.mariadb.org/repo/${MARIADB_VERSION}/${CURRENT_OS} ${DISTRO_CODENAME} main" \ >/etc/apt/sources.list.d/mariadb.list + msg_ok "Repository configured" - $STD apt-get update - $STD apt-get install -y mariadb-server mariadb-client + if $STD apt-get update; then + msg_ok "APT index updated" + else + msg_error "APT update failed" + return 1 + fi - msg_ok "Setup MariaDB $MARIADB_VERSION" + if $STD apt-get install -y mariadb-server mariadb-client; then + msg_ok "MariaDB $MARIADB_VERSION installed" + else + msg_error "MariaDB installation failed" + return 1 + fi } # ------------------------------------------------------------------------------