From f7502997807039056982cc9acca7c451c7443939 Mon Sep 17 00:00:00 2001 From: Juergen Kunz Date: Mon, 20 Oct 2025 13:24:03 +0000 Subject: [PATCH] fix(install): simplify installation to only binary in /opt/nupst - Remove all conditional migration logic - Always completely clean /opt/nupst before installation - Ensures only NUPST binary exists in installation directory - Simplified service restart logic --- deno.json | 2 +- install.sh | 91 +++++++++++++----------------------------------------- 2 files changed, 23 insertions(+), 70 deletions(-) diff --git a/deno.json b/deno.json index 5ec1a63..bf6c4a6 100644 --- a/deno.json +++ b/deno.json @@ -1,6 +1,6 @@ { "name": "@serve.zone/nupst", - "version": "5.0.2", + "version": "5.0.3", "exports": "./mod.ts", "tasks": { "dev": "deno run --allow-all mod.ts", diff --git a/install.sh b/install.sh index 82e374c..34d0979 100644 --- a/install.sh +++ b/install.sh @@ -1,6 +1,6 @@ #!/bin/bash -# NUPST Installer Script (v4.0+) +# NUPST Installer Script (v5.0+) # Downloads and installs pre-compiled NUPST binary from Gitea releases # # Usage: @@ -8,7 +8,7 @@ # curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh | sudo bash # # With version specification: -# curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh | sudo bash -s -- --version v4.0.0 +# curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh | sudo bash -s -- --version v5.0.0 # # Options: # -h, --help Show this help message @@ -48,14 +48,14 @@ while [[ $# -gt 0 ]]; do done if [ $SHOW_HELP -eq 1 ]; then - echo "NUPST Installer Script (v4.0+)" + echo "NUPST Installer Script (v5.0+)" echo "Downloads and installs pre-compiled NUPST binary" echo "" echo "Usage: $0 [options]" echo "" echo "Options:" echo " -h, --help Show this help message" - echo " --version VERSION Install specific version (e.g., v4.0.0)" + echo " --version VERSION Install specific version (e.g., v5.0.0)" echo " --install-dir DIR Installation directory (default: /opt/nupst)" echo "" echo "Examples:" @@ -63,7 +63,7 @@ if [ $SHOW_HELP -eq 1 ]; then echo " curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh | sudo bash" echo "" echo " # Install specific version" - echo " curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh | sudo bash -s -- --version v4.0.0" + echo " curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh | sudo bash -s -- --version v5.0.0" exit 0 fi @@ -145,7 +145,7 @@ get_latest_version() { # Main installation process echo "================================================" -echo " NUPST Installation Script (v4.0+)" +echo " NUPST Installation Script (v5.0+)" echo "================================================" echo "" @@ -169,51 +169,26 @@ DOWNLOAD_URL="${GITEA_BASE_URL}/${GITEA_REPO}/releases/download/${VERSION}/${BIN echo "Download URL: $DOWNLOAD_URL" echo "" -# Check if installation directory exists +# Check if service is running and stop it SERVICE_WAS_RUNNING=0 -OLD_NODE_INSTALL=0 - -if [ -d "$INSTALL_DIR" ]; then - # Check if this is an old Node.js-based installation - if [ -f "$INSTALL_DIR/package.json" ] || [ -d "$INSTALL_DIR/node_modules" ]; then - OLD_NODE_INSTALL=1 - echo "Detected old Node.js-based NUPST installation (v3.x or earlier)" - echo "This installer will migrate to the new Deno-based binary version (v4.0+)" - echo "" +if systemctl is-enabled --quiet nupst 2>/dev/null || systemctl is-active --quiet nupst 2>/dev/null; then + SERVICE_WAS_RUNNING=1 + if systemctl is-active --quiet nupst 2>/dev/null; then + echo "Stopping NUPST service..." + systemctl stop nupst fi - - echo "Updating existing installation at $INSTALL_DIR..." - - # Check if service exists (enabled or running) and stop it if active - if systemctl is-enabled --quiet nupst 2>/dev/null || systemctl is-active --quiet nupst 2>/dev/null; then - SERVICE_WAS_RUNNING=1 - if systemctl is-active --quiet nupst 2>/dev/null; then - echo "Stopping NUPST service..." - systemctl stop nupst - else - echo "Service is installed but not currently running (will be updated)..." - fi - fi - - # Clean up old Node.js installation files - if [ $OLD_NODE_INSTALL -eq 1 ]; then - echo "Cleaning up old Node.js installation files..." - rm -rf "$INSTALL_DIR/node_modules" 2>/dev/null || true - rm -rf "$INSTALL_DIR/vendor" 2>/dev/null || true - rm -rf "$INSTALL_DIR/dist_ts" 2>/dev/null || true - rm -f "$INSTALL_DIR/package.json" 2>/dev/null || true - rm -f "$INSTALL_DIR/package-lock.json" 2>/dev/null || true - rm -f "$INSTALL_DIR/pnpm-lock.yaml" 2>/dev/null || true - rm -f "$INSTALL_DIR/tsconfig.json" 2>/dev/null || true - rm -f "$INSTALL_DIR/setup.sh" 2>/dev/null || true - rm -rf "$INSTALL_DIR/bin" 2>/dev/null || true - echo "Old installation files removed." - fi -else - echo "Creating installation directory: $INSTALL_DIR" - mkdir -p "$INSTALL_DIR" fi +# Clean installation directory - ensure only binary exists +if [ -d "$INSTALL_DIR" ]; then + echo "Cleaning installation directory: $INSTALL_DIR" + rm -rf "$INSTALL_DIR" +fi + +# Create fresh installation directory +echo "Creating installation directory: $INSTALL_DIR" +mkdir -p "$INSTALL_DIR" + # Download binary echo "Downloading NUPST binary..." TEMP_FILE="$INSTALL_DIR/nupst.download" @@ -260,14 +235,6 @@ echo "Symlink created: $BIN_DIR/nupst -> $BINARY_PATH" echo "" -# Update systemd service file if migrating from v3 -if [ $SERVICE_WAS_RUNNING -eq 1 ] && [ $OLD_NODE_INSTALL -eq 1 ]; then - echo "Updating systemd service file for v4..." - $BINARY_PATH service enable > /dev/null 2>&1 - echo "Service file updated." - echo "" -fi - # Restart service if it was running before update if [ $SERVICE_WAS_RUNNING -eq 1 ]; then echo "Restarting NUPST service..." @@ -280,20 +247,6 @@ echo "================================================" echo " NUPST Installation Complete!" echo "================================================" echo "" - -if [ $OLD_NODE_INSTALL -eq 1 ]; then - echo "Migration from v3.x to v4.0 successful!" - echo "" - echo "What changed:" - echo " • Node.js runtime removed (now a self-contained binary)" - echo " • Faster startup and lower memory usage" - echo " • CLI commands now use subcommand structure" - echo " (old commands still work with deprecation warnings)" - echo "" - echo "See readme for migration details: https://code.foss.global/serve.zone/nupst#migration-from-v3x" - echo "" -fi - echo "Installation details:" echo " Binary location: $BINARY_PATH" echo " Symlink location: $BIN_DIR/nupst"