From afb5df27c15a908f849eea106217a5dad548dbb7 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 8 Dec 2025 15:35:43 +0100 Subject: [PATCH] shorten update --- tools/addon/jellystat.sh | 102 ++++++++++++++------------------------- 1 file changed, 35 insertions(+), 67 deletions(-) diff --git a/tools/addon/jellystat.sh b/tools/addon/jellystat.sh index 41cc17c60..7393a70fd 100644 --- a/tools/addon/jellystat.sh +++ b/tools/addon/jellystat.sh @@ -82,8 +82,27 @@ function uninstall() { rm -f "$SERVICE_PATH" rm -rf "$INSTALL_PATH" rm -f "/usr/local/bin/update_jellystat" + rm -f "$HOME/.jellystat" msg_ok "${APP} has been uninstalled" - msg_warn "PostgreSQL database was NOT removed. Remove manually if needed." + + # Ask about PostgreSQL database removal + echo "" + echo -n "${TAB}Also remove PostgreSQL database 'jellystat'? (y/N): " + read -r db_prompt + if [[ "${db_prompt,,}" =~ ^(y|yes)$ ]]; then + if command -v psql &>/dev/null; then + msg_info "Removing PostgreSQL database and user" + sudo -u postgres psql -c "DROP DATABASE IF EXISTS jellystat;" &>/dev/null || true + sudo -u postgres psql -c "DROP USER IF EXISTS jellystat;" &>/dev/null || true + msg_ok "Removed PostgreSQL database 'jellystat' and user 'jellystat'" + else + msg_warn "PostgreSQL not found - database may have been removed already" + fi + else + msg_warn "PostgreSQL database was NOT removed. Remove manually if needed:" + echo -e "${TAB} sudo -u postgres psql -c \"DROP DATABASE jellystat;\"" + echo -e "${TAB} sudo -u postgres psql -c \"DROP USER jellystat;\"" + fi } # ============================================================================== @@ -251,76 +270,12 @@ EOF systemctl enable --now jellystat &>/dev/null msg_ok "Created and started service" - # Create update script + # Create update script (simple wrapper that calls this addon with type=update) msg_info "Creating update script" cat <<'UPDATEEOF' >/usr/local/bin/update_jellystat #!/usr/bin/env bash # Jellystat Update Script -# Auto-generated by community-scripts addon installer - -set -e - -APP="Jellystat" -INSTALL_PATH="/opt/jellystat" -CONFIG_PATH="/opt/jellystat/.env" - -# Colors -YW='\033[33m' -GN='\033[1;92m' -RD='\033[01;31m' -BL='\033[36m' -CL='\033[m' -CM="${GN}✔️${CL}" -INFO="${BL}ℹ️${CL}" - -msg_info() { echo -e "${INFO} ${YW}${1}...${CL}"; } -msg_ok() { echo -e "${CM} ${GN}${1}${CL}"; } - -echo -e "${BL}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${CL}" -echo -e "${GN} Jellystat Update Script${CL}" -echo -e "${BL}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${CL}" -echo "" - -# Source tools.func for check_for_gh_release and fetch_and_deploy_gh_release -source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/tools.func) 2>/dev/null || { - echo -e "${RD}Failed to load tools.func${CL}" - exit 1 -} - -if check_for_gh_release "jellystat" "CyferShepard/Jellystat"; then - msg_info "Stopping service" - systemctl stop jellystat.service &>/dev/null || true - msg_ok "Stopped service" - - msg_info "Backing up configuration" - cp "$CONFIG_PATH" /tmp/jellystat.env.bak 2>/dev/null || true - msg_ok "Backed up configuration" - - fetch_and_deploy_gh_release "jellystat" "CyferShepard/Jellystat" "tarball" "latest" "$INSTALL_PATH" - - msg_info "Restoring configuration" - cp /tmp/jellystat.env.bak "$CONFIG_PATH" 2>/dev/null || true - rm -f /tmp/jellystat.env.bak - msg_ok "Restored configuration" - - msg_info "Installing dependencies" - cd "$INSTALL_PATH" - npm install &>/dev/null - msg_ok "Installed dependencies" - - msg_info "Building ${APP}" - npm run build &>/dev/null - msg_ok "Built ${APP}" - - msg_info "Starting service" - systemctl start jellystat.service &>/dev/null - msg_ok "Started service" - - echo "" - msg_ok "${APP} updated successfully!" -else - msg_ok "${APP} is already up-to-date" -fi +type=update bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/tools/addon/jellystat.sh)" UPDATEEOF chmod +x /usr/local/bin/update_jellystat msg_ok "Created update script (/usr/local/bin/update_jellystat)" @@ -349,6 +304,19 @@ EOF # ============================================================================== # MAIN # ============================================================================== + +# Handle type=update (called from update script) +if [[ "${type:-}" == "update" ]]; then + header_info + if [[ -d "$INSTALL_PATH" && -f "$INSTALL_PATH/package.json" ]]; then + update + else + msg_error "${APP} is not installed. Nothing to update." + exit 1 + fi + exit 0 +fi + header_info IP=$(get_ip)