File transfer
This commit is contained in:
70
update.sh
Normal file
70
update.sh
Normal file
@@ -0,0 +1,70 @@
|
||||
#!/usr/bin/env bash
|
||||
# =============================================================================
|
||||
# Pterodactyl Advanced Admin Addons — Updater
|
||||
# Author : Ball Studios <https://git.balls.studio>
|
||||
# Usage : bash <(curl -fsSL https://git.balls.studio/BallStudios/pterodactyl_addon/raw/branch/main/update.sh)
|
||||
# =============================================================================
|
||||
|
||||
set -euo pipefail
|
||||
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; CYAN='\033[0;36m'; BOLD='\033[1m'; NC='\033[0m'
|
||||
info() { echo -e "${CYAN}[INFO]${NC} $*"; }
|
||||
success() { echo -e "${GREEN}[OK]${NC} $*"; }
|
||||
warn() { echo -e "${YELLOW}[WARN]${NC} $*"; }
|
||||
error() { echo -e "${RED}[ERROR]${NC} $*" >&2; exit 1; }
|
||||
step() { echo -e "\n${BOLD}▶ $*${NC}"; }
|
||||
|
||||
PANEL_DIR="${1:-/var/www/pterodactyl}"
|
||||
REPO_URL="https://git.balls.studio/BallStudios/pterodactyl_addon"
|
||||
TMP_DIR="$(mktemp -d)"
|
||||
BACKUP_DIR="${PANEL_DIR}/.addon_update_backup_$(date +%Y%m%d_%H%M%S)"
|
||||
PHP_BIN="$(command -v php)"
|
||||
|
||||
cleanup() { rm -rf "$TMP_DIR"; }
|
||||
trap cleanup EXIT
|
||||
|
||||
echo -e "\n${BOLD}${CYAN}Pterodactyl Advanced Admin Addons — Updater${NC}\n"
|
||||
|
||||
[[ $EUID -eq 0 ]] || error "Must be run as root."
|
||||
[[ -f "${PANEL_DIR}/artisan" ]] || error "Panel not found at ${PANEL_DIR}."
|
||||
|
||||
step "Backing up current addon files..."
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
cp -r "${PANEL_DIR}/app/Addons/AdvancedAdmin" "$BACKUP_DIR/" 2>/dev/null || true
|
||||
cp -r "${PANEL_DIR}/resources/scripts/addons/advanced-admin" "$BACKUP_DIR/" 2>/dev/null || true
|
||||
success "Backup → ${BACKUP_DIR}"
|
||||
|
||||
step "Rolling back old patches..."
|
||||
cd "$PANEL_DIR"
|
||||
$PHP_BIN artisan addon:patch rollback 2>/dev/null || warn "Patch rollback command not available — skipping."
|
||||
|
||||
step "Pulling latest addon..."
|
||||
git clone --depth=1 "$REPO_URL" "$TMP_DIR/addon"
|
||||
cd "$TMP_DIR/addon"
|
||||
|
||||
cp -r app/Addons "${PANEL_DIR}/app/"
|
||||
cp config/advanced-admin.php "${PANEL_DIR}/config/"
|
||||
cp -r config/addon-commands "${PANEL_DIR}/config/"
|
||||
cp -r database/migrations/addon/. "${PANEL_DIR}/database/migrations/addon/"
|
||||
cp routes/addon-client.php "${PANEL_DIR}/routes/"
|
||||
cp routes/addon-application.php "${PANEL_DIR}/routes/"
|
||||
cp -r resources/scripts/addons/advanced-admin "${PANEL_DIR}/resources/scripts/addons/"
|
||||
success "Files updated."
|
||||
|
||||
step "Applying patches..."
|
||||
bash "${PANEL_DIR}/app/Addons/AdvancedAdmin/../../../install.sh" --patches-only 2>/dev/null || \
|
||||
warn "Re-run install.sh manually if patches need reapplying."
|
||||
|
||||
step "Running new migrations..."
|
||||
cd "$PANEL_DIR"
|
||||
$PHP_BIN artisan migrate --path=database/migrations/addon --force
|
||||
success "Migrations done."
|
||||
|
||||
step "Rebuilding frontend..."
|
||||
export NODE_OPTIONS="${NODE_OPTIONS:---openssl-legacy-provider}"
|
||||
yarn install --frozen-lockfile && yarn build:production
|
||||
success "Frontend rebuilt."
|
||||
|
||||
step "Clearing caches..."
|
||||
$PHP_BIN artisan optimize:clear && $PHP_BIN artisan optimize
|
||||
$PHP_BIN artisan queue:restart
|
||||
success "Update complete!"
|
||||
Reference in New Issue
Block a user