From 5669616afce8e8f4b3a66e62a14a8f07f1eb83d6 Mon Sep 17 00:00:00 2001 From: Michel Roegl-Brunner Date: Mon, 16 Dec 2024 13:46:34 +0100 Subject: [PATCH] Fix: Bookstack Update Function --- ct/bookstack.sh | 78 +++++++++++++++++++++++++------------------------ 1 file changed, 40 insertions(+), 38 deletions(-) diff --git a/ct/bookstack.sh b/ct/bookstack.sh index bc76c6d4..1d83610f 100644 --- a/ct/bookstack.sh +++ b/ct/bookstack.sh @@ -25,44 +25,46 @@ color catch_errors function update_script() { - header_info - check_container_storage - check_container_resources - if [[ ! -d /opt/bookstack ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi - RELEASE=$(curl -s https://api.github.com/repos/BookStackApp/BookStack/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') - if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then - msg_info "Stopping Apache2" - systemctl stop apache2 - msg_ok "Services Stopped" - - msg_info "Updating ${APP} to ${RELEASE}" - cp /opt/bookstack/.env /opt/.env - wget -q "https://github.com/BookStackApp/BookStack/archive/refs/tags/v${RELEASE}.zip" - unzip -q v${RELEASE}.zip - mv BookStack-${RELEASE} /opt/bookstack - mv /opt/.env /opt/bookstack/.env - cd /opt/bookstack - COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev &>/dev/null - php artisan key:generate --force &>/dev/null - php artisan migrate --force &>/dev/null - echo "${RELEASE}" >/opt/${APP}_version.txt - msg_ok "Updated ${APP}" - - msg_info "Starting Apache2" - systemctl start apache2 - msg_ok "Started Apache2" - - msg_info "Cleaning Up" - rm -rf v${RELEASE}.zip - msg_ok "Cleaned" - msg_ok "Updated Successfully" - else - msg_ok "No update required. ${APP} is already at ${RELEASE}" - fi - exit +header_info +check_container_storage +check_container_resources +if [[ ! -d /opt/bookstack ]]; then msg_error "No ${APP} Installation Found!"; exit; fi +RELEASE=$(curl -s https://api.github.com/repos/BookStackApp/BookStack/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') +if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then + msg_info "Stopping Apache2" + systemctl stop apache2 + msg_ok "Services Stopped" + msg_info "Updating ${APP} to v${RELEASE}" + mv /opt/bookstack /opt/bookstack-backup + wget -q --directory-prefix=/root/ "https://github.com/BookStackApp/BookStack/archive/refs/tags/v${RELEASE}.zip" + unzip -q ~/v${RELEASE}.zip + mv ~/BookStack-${RELEASE} /opt/bookstack + cp /opt/bookstack-backup/.env /opt/bookstack/.env + cp -r /opt/bookstack-backup/public/uploads/ /opt/bookstack/public/uploads + cp -r /opt/bookstack-backup/storage/uploads/ /opt/bookstack/storage/uploads + cp -r /opt/bookstack-backup/themes/ /opt/bookstack/themes + cd /opt/bookstack + COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev &>/dev/null + php artisan key:generate --force &>/dev/null + php artisan migrate --force &>/dev/null + chown www-data:www-data -R /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage + chmod -R 755 /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage + chmod -R 775 /opt/bookstack/storage /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads + chmod -R 640 /opt/bookstack/.env + echo "${RELEASE}" >/opt/${APP}_version.txt + msg_ok "Updated ${APP}" + msg_info "Starting Apache2 " + systemctl start apache2 + msg_ok "Started Apache2" + msg_info "Cleaning Up" + rm -rf /opt/bookstack-backup + rm -rf ~/v${RELEASE}.zip + msg_ok "Cleaned" + msg_ok "Updated Successfully" +else + msg_ok "No update required. ${APP} is already at v${RELEASE}" +fi +exit } start build_container