From de0199107b21e34998b56d01d16a3574a367f355 Mon Sep 17 00:00:00 2001 From: "CanbiZ (MickLesk)" <47820557+MickLesk@users.noreply.github.com> Date: Mon, 2 Feb 2026 10:29:22 +0100 Subject: [PATCH] refactor(forgejo,readeck): use fetch_and_deploy_codeberg_release function --- ct/forgejo.sh | 43 ++++++++++++++++---------------------- ct/readeck.sh | 26 +++++++++++------------ install/forgejo-install.sh | 14 +++++-------- install/readeck-install.sh | 8 +------ 4 files changed, 36 insertions(+), 55 deletions(-) diff --git a/ct/forgejo.sh b/ct/forgejo.sh index 927b95cff..47be0bdc5 100644 --- a/ct/forgejo.sh +++ b/ct/forgejo.sh @@ -27,35 +27,28 @@ function update_script() { msg_error "No ${APP} Installation Found!" exit fi - msg_info "Stopping Service" - systemctl stop forgejo - msg_ok "Stopped Service" + if check_for_codeberg_release "forgejo" "forgejo/forgejo"; then + msg_info "Stopping Service" + systemctl stop forgejo + msg_ok "Stopped Service" - msg_info "Updating ${APP}" - RELEASE=$(curl -fsSL https://codeberg.org/api/v1/repos/forgejo/forgejo/releases/latest | grep -oP '"tag_name":\s*"\K[^"]+' | sed 's/^v//') - curl -fsSL "https://codeberg.org/forgejo/forgejo/releases/download/v${RELEASE}/forgejo-${RELEASE}-linux-amd64" -o "forgejo-$RELEASE-linux-amd64" - rm -rf /opt/forgejo/* - cp -r forgejo-$RELEASE-linux-amd64 /opt/forgejo/forgejo-$RELEASE-linux-amd64 - chmod +x /opt/forgejo/forgejo-$RELEASE-linux-amd64 - ln -sf /opt/forgejo/forgejo-$RELEASE-linux-amd64 /usr/local/bin/forgejo - msg_ok "Updated ${APP}" + fetch_and_deploy_codeberg_release "forgejo" "forgejo/forgejo" "singlefile" "latest" "/opt/forgejo" "forgejo-*-linux-amd64" + ln -sf /opt/forgejo/forgejo /usr/local/bin/forgejo - msg_info "Cleaning" - rm -rf forgejo-$RELEASE-linux-amd64 - msg_ok "Cleaned" + if grep -q "GITEA_WORK_DIR" /etc/systemd/system/forgejo.service; then + msg_info "Updating Service File" + sed -i "s/GITEA_WORK_DIR/FORGEJO_WORK_DIR/g" /etc/systemd/system/forgejo.service + systemctl daemon-reload + msg_ok "Updated Service File" + fi - # Fix env var from older version of community script - if grep -q "GITEA_WORK_DIR" /etc/systemd/system/forgejo.service; then - msg_info "Updating Service File" - sed -i "s/GITEA_WORK_DIR/FORGEJO_WORK_DIR/g" /etc/systemd/system/forgejo.service - systemctl daemon-reload - msg_ok "Updated Service File" + msg_info "Starting Service" + systemctl start forgejo + msg_ok "Started Service" + msg_ok "Updated successfully!" + else + msg_ok "No update required. ${APP} is already at the latest version." fi - - msg_info "Starting Service" - systemctl start forgejo - msg_ok "Started Service" - msg_ok "Updated successfully!" exit } diff --git a/ct/readeck.sh b/ct/readeck.sh index b10329ece..e0c7b8488 100644 --- a/ct/readeck.sh +++ b/ct/readeck.sh @@ -27,22 +27,20 @@ function update_script() { msg_error "No ${APP} Installation Found!" exit fi - msg_info "Stopping Service" - systemctl stop readeck - msg_ok "Stopped Service" + if check_for_codeberg_release "readeck" "readeck/readeck"; then + msg_info "Stopping Service" + systemctl stop readeck + msg_ok "Stopped Service" - msg_info "Updating Readeck" - LATEST=$(curl -fsSL https://codeberg.org/readeck/readeck/releases/ | grep -oP '/releases/tag/\K\d+\.\d+\.\d+' | head -1) - rm -rf /opt/readeck/readeck - cd /opt/readeck - curl -fsSL "https://codeberg.org/readeck/readeck/releases/download/${LATEST}/readeck-${LATEST}-linux-amd64" -o "readeck" - chmod a+x readeck - msg_ok "Updated Readeck" + fetch_and_deploy_codeberg_release "readeck" "readeck/readeck" "singlefile" "latest" "/opt/readeck" "readeck-*-linux-amd64" - msg_info "Starting Service" - systemctl start readeck - msg_ok "Started Service" - msg_ok "Updated successfully!" + msg_info "Starting Service" + systemctl start readeck + msg_ok "Started Service" + msg_ok "Updated successfully!" + else + msg_ok "No update required. ${APP} is already at the latest version." + fi exit } diff --git a/install/forgejo-install.sh b/install/forgejo-install.sh index 979d848dd..6f7e02d33 100644 --- a/install/forgejo-install.sh +++ b/install/forgejo-install.sh @@ -14,17 +14,13 @@ network_check update_os msg_info "Installing Dependencies" -$STD apt-get install -y git -$STD apt-get install -y git-lfs +$STD apt install -y \ + git \ + git-lfs msg_ok "Installed Dependencies" -msg_info "Installing Forgejo" -mkdir -p /opt/forgejo -RELEASE=$(curl -fsSL https://codeberg.org/api/v1/repos/forgejo/forgejo/releases/latest | grep -oP '"tag_name":\s*"\K[^"]+' | sed 's/^v//') -curl -fsSL "https://codeberg.org/forgejo/forgejo/releases/download/v${RELEASE}/forgejo-${RELEASE}-linux-amd64" -o "/opt/forgejo/forgejo-$RELEASE-linux-amd64" -chmod +x /opt/forgejo/forgejo-$RELEASE-linux-amd64 -ln -sf /opt/forgejo/forgejo-$RELEASE-linux-amd64 /usr/local/bin/forgejo -msg_ok "Installed Forgejo" +fetch_and_deploy_codeberg_release "forgejo" "forgejo/forgejo" "singlefile" "latest" "/opt/forgejo" "forgejo-*-linux-amd64" +ln -sf /opt/forgejo/forgejo /usr/local/bin/forgejo msg_info "Setting up Forgejo" $STD adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git diff --git a/install/readeck-install.sh b/install/readeck-install.sh index ec7d171f0..5b6599bbd 100644 --- a/install/readeck-install.sh +++ b/install/readeck-install.sh @@ -13,13 +13,7 @@ setting_up_container network_check update_os -msg_info "Installing Readeck" -LATEST=$(curl -fsSL https://codeberg.org/readeck/readeck/releases/ | grep -oP '/releases/tag/\K\d+\.\d+\.\d+' | head -1) -mkdir -p /opt/readeck -cd /opt/readeck -curl -fsSL "https://codeberg.org/readeck/readeck/releases/download/${LATEST}/readeck-${LATEST}-linux-amd64" -o "readeck" -chmod a+x readeck -msg_ok "Installed Readeck" +fetch_and_deploy_codeberg_release "readeck" "readeck/readeck" "singlefile" "latest" "/opt/readeck" "readeck-*-linux-amd64" msg_info "Creating Service" cat </etc/systemd/system/readeck.service