diff --git a/ct/pingvin.sh b/ct/pingvin.sh index 95e09711..6e8eadc1 100644 --- a/ct/pingvin.sh +++ b/ct/pingvin.sh @@ -32,30 +32,42 @@ function update_script() { msg_error "No ${APP} Installation Found!" exit fi - msg_info "Stopping Pingvin Share" - systemctl stop pm2-root.service - msg_ok "Stopped Pingvin Share" + + RELEASE=$(curl -s https://api.github.com/repos/stonith404/pingvin-share/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') + if [[ ! -f /opt/$pingvin_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/pingvin_version.txt)" ]]; then + + msg_info "Stopping Pingvin Share" + systemctl stop pm2-root.service + msg_ok "Stopped Pingvin Share" + + msg_info "Updating Pingvin Share to v${RELEASE}" + cd /opt + wget -q "https://github.com/stonith404/pingvin-share/archive/refs/tags/v${RELEASE}.zip" + unzip -q v${RELEASE}.zip + mv pingvin-share-${RELEASE} /opt/pingvin-share + cd /opt/pingvin-share + cd backend + npm install &>/dev/null + npm run build &>/dev/null + cd ../frontend + npm install &>/dev/null + npm run build &>/dev/null + echo "${RELEASE}" >"/opt/pingvin_version.txt" + rm -rf /opt/v${RELEASE}.zip + msg_ok "Updated Pingvin Share to v${RELEASE}" - msg_info "Updating Pingvin Share" - cd /opt/pingvin-share - git fetch --tags - git checkout $(git describe --tags $(git rev-list --tags --max-count=1)) &>/dev/null - cd backend - npm install &>/dev/null - npm run build &>/dev/null - cd ../frontend - npm install &>/dev/null - npm run build &>/dev/null - msg_ok "Updated Pingvin Share" + msg_info "Starting Pingvin Share" + systemctl start pm2-root.service + msg_ok "Started Pingvin Share" - msg_info "Starting Pingvin Share" - systemctl start pm2-root.service - msg_ok "Started Pingvin Share" - - msg_ok "Updated Successfully" - exit + msg_ok "Updated Successfully" + exit + else + msg_ok "No update required. Pingvin Share is already at v${RELEASE}." + fi } + start build_container description @@ -63,4 +75,4 @@ description msg_ok "Completed Successfully!\n" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}" \ No newline at end of file +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}" diff --git a/install/pingvin-install.sh b/install/pingvin-install.sh index 5478aab4..253e107a 100644 --- a/install/pingvin-install.sh +++ b/install/pingvin-install.sh @@ -2,6 +2,7 @@ # Copyright (c) 2021-2025 tteck # Author: tteck (tteckster) +# Co-Author: michelroegl-brunner # License: MIT # https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE @@ -14,11 +15,12 @@ network_check update_os msg_info "Installing Dependencies" -$STD apt-get install -y curl -$STD apt-get install -y sudo -$STD apt-get install -y mc -$STD apt-get install -y git -$STD apt-get install -y gnupg +$STD apt-get install -y \ + curl \ + sudo \ + mc \ + git \ + gnupg msg_ok "Installed Dependencies" msg_info "Setting up Node.js Repository" @@ -34,11 +36,14 @@ $STD npm install pm2 -g msg_ok "Installed Node.js" msg_info "Installing Pingvin Share (Patience)" -git clone -q https://github.com/stonith404/pingvin-share /opt/pingvin-share -cd /opt/pingvin-share -$STD git fetch --tags -$STD git checkout $(git describe --tags `git rev-list --tags --max-count=1`) -cd backend +cd /opt +RELEASE=$(curl -s https://api.github.com/repos/stonith404/pingvin-share/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') +echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt" +wget -q "https://github.com/stonith404/pingvin-share/archive/refs/tags/v${RELEASE}.zip" +unzip -q v${RELEASE}.zip +echo "${RELEASE}" >"/opt/pingvin_version.txt" +mv pingvin-share-${RELEASE} /opt/pingvin-share +cd /opt/pingvin-share/backend $STD npm install $STD npm run build $STD pm2 start --name="pingvin-share-backend" npm -- run prod @@ -57,6 +62,7 @@ motd_ssh customize msg_info "Cleaning up" +rm -rf /opt/v${RELEASE}.zip $STD apt-get -y autoremove $STD apt-get -y autoclean msg_ok "Cleaned"