Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
18bd9f6cda | |||
f03c683d02 | |||
f750299780 |
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@serve.zone/nupst",
|
"name": "@serve.zone/nupst",
|
||||||
"version": "5.0.2",
|
"version": "5.0.5",
|
||||||
"exports": "./mod.ts",
|
"exports": "./mod.ts",
|
||||||
"tasks": {
|
"tasks": {
|
||||||
"dev": "deno run --allow-all mod.ts",
|
"dev": "deno run --allow-all mod.ts",
|
||||||
|
94
install.sh
94
install.sh
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# NUPST Installer Script (v4.0+)
|
# NUPST Installer Script (v5.0+)
|
||||||
# Downloads and installs pre-compiled NUPST binary from Gitea releases
|
# Downloads and installs pre-compiled NUPST binary from Gitea releases
|
||||||
#
|
#
|
||||||
# Usage:
|
# Usage:
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
# curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh | sudo bash
|
# curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh | sudo bash
|
||||||
#
|
#
|
||||||
# With version specification:
|
# 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:
|
# Options:
|
||||||
# -h, --help Show this help message
|
# -h, --help Show this help message
|
||||||
@@ -48,14 +48,14 @@ while [[ $# -gt 0 ]]; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
if [ $SHOW_HELP -eq 1 ]; then
|
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 "Downloads and installs pre-compiled NUPST binary"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Usage: $0 [options]"
|
echo "Usage: $0 [options]"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Options:"
|
echo "Options:"
|
||||||
echo " -h, --help Show this help message"
|
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 " --install-dir DIR Installation directory (default: /opt/nupst)"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Examples:"
|
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 " curl -sSL https://code.foss.global/serve.zone/nupst/raw/branch/main/install.sh | sudo bash"
|
||||||
echo ""
|
echo ""
|
||||||
echo " # Install specific version"
|
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
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -145,7 +145,7 @@ get_latest_version() {
|
|||||||
|
|
||||||
# Main installation process
|
# Main installation process
|
||||||
echo "================================================"
|
echo "================================================"
|
||||||
echo " NUPST Installation Script (v4.0+)"
|
echo " NUPST Installation Script (v5.0+)"
|
||||||
echo "================================================"
|
echo "================================================"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
@@ -169,51 +169,26 @@ DOWNLOAD_URL="${GITEA_BASE_URL}/${GITEA_REPO}/releases/download/${VERSION}/${BIN
|
|||||||
echo "Download URL: $DOWNLOAD_URL"
|
echo "Download URL: $DOWNLOAD_URL"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# Check if installation directory exists
|
# Check if service is running and stop it
|
||||||
SERVICE_WAS_RUNNING=0
|
SERVICE_WAS_RUNNING=0
|
||||||
OLD_NODE_INSTALL=0
|
if systemctl is-enabled --quiet nupst 2>/dev/null || systemctl is-active --quiet nupst 2>/dev/null; then
|
||||||
|
|
||||||
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 ""
|
|
||||||
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
|
SERVICE_WAS_RUNNING=1
|
||||||
if systemctl is-active --quiet nupst 2>/dev/null; then
|
if systemctl is-active --quiet nupst 2>/dev/null; then
|
||||||
echo "Stopping NUPST service..."
|
echo "Stopping NUPST service..."
|
||||||
systemctl stop nupst
|
systemctl stop nupst
|
||||||
else
|
|
||||||
echo "Service is installed but not currently running (will be updated)..."
|
|
||||||
fi
|
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
|
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
|
# Download binary
|
||||||
echo "Downloading NUPST binary..."
|
echo "Downloading NUPST binary..."
|
||||||
TEMP_FILE="$INSTALL_DIR/nupst.download"
|
TEMP_FILE="$INSTALL_DIR/nupst.download"
|
||||||
@@ -241,9 +216,20 @@ fi
|
|||||||
BINARY_PATH="$INSTALL_DIR/nupst"
|
BINARY_PATH="$INSTALL_DIR/nupst"
|
||||||
mv "$TEMP_FILE" "$BINARY_PATH"
|
mv "$TEMP_FILE" "$BINARY_PATH"
|
||||||
|
|
||||||
|
if [ $? -ne 0 ] || [ ! -f "$BINARY_PATH" ]; then
|
||||||
|
echo "Error: Failed to move binary to $BINARY_PATH"
|
||||||
|
rm -f "$TEMP_FILE" 2>/dev/null
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Make executable
|
# Make executable
|
||||||
chmod +x "$BINARY_PATH"
|
chmod +x "$BINARY_PATH"
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "Error: Failed to make binary executable"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Binary installed successfully to: $BINARY_PATH"
|
echo "Binary installed successfully to: $BINARY_PATH"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
@@ -260,14 +246,6 @@ echo "Symlink created: $BIN_DIR/nupst -> $BINARY_PATH"
|
|||||||
|
|
||||||
echo ""
|
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
|
# Restart service if it was running before update
|
||||||
if [ $SERVICE_WAS_RUNNING -eq 1 ]; then
|
if [ $SERVICE_WAS_RUNNING -eq 1 ]; then
|
||||||
echo "Restarting NUPST service..."
|
echo "Restarting NUPST service..."
|
||||||
@@ -280,20 +258,6 @@ echo "================================================"
|
|||||||
echo " NUPST Installation Complete!"
|
echo " NUPST Installation Complete!"
|
||||||
echo "================================================"
|
echo "================================================"
|
||||||
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 "Installation details:"
|
||||||
echo " Binary location: $BINARY_PATH"
|
echo " Binary location: $BINARY_PATH"
|
||||||
echo " Symlink location: $BIN_DIR/nupst"
|
echo " Symlink location: $BIN_DIR/nupst"
|
||||||
|
Reference in New Issue
Block a user