You've already forked Atomcms-edit
Improve update-Nitrov3.sh: realtime output, strict yarn install, perms fix, extra validation
This commit is contained in:
+68
-35
@@ -3,6 +3,13 @@
|
|||||||
# Exit immediately if a command exits with a non-zero status
|
# Exit immediately if a command exits with a non-zero status
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
# Real-time output - disable buffering zodat je bij "run update" direct ziet wat er gebeurt
|
||||||
|
if command -v stdbuf &> /dev/null && [ -z "$_UNBUFFERED" ]; then
|
||||||
|
export _UNBUFFERED=1
|
||||||
|
exec stdbuf -oL -eL bash "$0" "$@"
|
||||||
|
fi
|
||||||
|
exec 2>&1
|
||||||
|
|
||||||
# --- CONFIGURATION (overridable via environment variables) ---
|
# --- CONFIGURATION (overridable via environment variables) ---
|
||||||
DB_NAME="${NITRO_DB_NAME:-habbo}"
|
DB_NAME="${NITRO_DB_NAME:-habbo}"
|
||||||
DB_HOST="${NITRO_DB_HOST:-127.0.0.1}"
|
DB_HOST="${NITRO_DB_HOST:-127.0.0.1}"
|
||||||
@@ -73,23 +80,11 @@ chmod +x emulator
|
|||||||
echo "--> Updating Nitro_Render_V3..."
|
echo "--> Updating Nitro_Render_V3..."
|
||||||
cd "$NITRO_RENDERER/"
|
cd "$NITRO_RENDERER/"
|
||||||
|
|
||||||
# Check if package.json will change after git pull
|
|
||||||
if git diff --name-only HEAD..@{u} | grep -q 'package.json'; then
|
|
||||||
NEED_YARN_RENDER=true
|
|
||||||
else
|
|
||||||
NEED_YARN_RENDER=false
|
|
||||||
fi
|
|
||||||
|
|
||||||
git pull
|
git pull
|
||||||
|
|
||||||
if [ "$NEED_YARN_RENDER" = true ]; then
|
echo "--> Running yarn install for Nitro_Render_V3..."
|
||||||
echo "--> package.json changed! Cleaning node_modules from Nitro_Render_V3..."
|
rm -rf node_modules
|
||||||
rm -rf node_modules
|
yarn install
|
||||||
echo "--> Running yarn install for Nitro_Render_V3..."
|
|
||||||
yarn install
|
|
||||||
else
|
|
||||||
echo "--> No changes in package.json for Nitro_Render_V3. Skipping yarn install."
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# ----------------------------------------
|
# ----------------------------------------
|
||||||
@@ -98,23 +93,11 @@ fi
|
|||||||
echo "--> Updating Nitro-V3..."
|
echo "--> Updating Nitro-V3..."
|
||||||
cd "$NITRO_CLIENT"
|
cd "$NITRO_CLIENT"
|
||||||
|
|
||||||
# Check if package.json will change after git pull
|
|
||||||
if git diff --name-only HEAD..@{u} | grep -q 'package.json'; then
|
|
||||||
NEED_YARN_V3=true
|
|
||||||
else
|
|
||||||
NEED_YARN_V3=false
|
|
||||||
fi
|
|
||||||
|
|
||||||
git pull
|
git pull
|
||||||
|
|
||||||
if [ "$NEED_YARN_V3" = true ]; then
|
echo "--> Running yarn install for Nitro-V3..."
|
||||||
echo "--> package.json changed! Cleaning node_modules from Nitro-V3..."
|
rm -rf node_modules
|
||||||
rm -rf node_modules
|
yarn install
|
||||||
echo "--> Running yarn install for Nitro-V3..."
|
|
||||||
yarn install
|
|
||||||
else
|
|
||||||
echo "--> No changes in package.json for Nitro-V3. Skipping yarn install."
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "--> Building Nitro-V3 with Vite 8 / Yarn..."
|
echo "--> Building Nitro-V3 with Vite 8 / Yarn..."
|
||||||
yarn build
|
yarn build
|
||||||
@@ -178,10 +161,14 @@ yarn cache clean
|
|||||||
# ----------------------------------------
|
# ----------------------------------------
|
||||||
if command -v sudo &> /dev/null; then
|
if command -v sudo &> /dev/null; then
|
||||||
echo "--> Setting permissions to www-data:www-data..."
|
echo "--> Setting permissions to www-data:www-data..."
|
||||||
sudo chown -R www-data:www-data "$NITRO_CLIENT" 2>/dev/null || echo "--> chown voor NITRO_CLIENT overgeslagen"
|
for dir in "$NITRO_CLIENT" "$NITRO_RENDERER" "$EMULATOR_DIR" "$GAMEDATA_CONF_DIR"; do
|
||||||
sudo chown -R www-data:www-data "$NITRO_RENDERER" 2>/dev/null || echo "--> chown voor NITRO_RENDERER overgeslagen"
|
if [ -d "$dir" ]; then
|
||||||
sudo chown -R www-data:www-data "$EMULATOR_DIR" 2>/dev/null || echo "--> chown voor EMULATOR_DIR overgeslagen"
|
sudo chown -R www-data:www-data "$dir" || echo "--> chown voor $dir overgeslagen"
|
||||||
sudo chown -R www-data:www-data "$GAMEDATA_CONF_DIR" 2>/dev/null || echo "--> chown voor GAMEDATA_CONF_DIR overgeslagen"
|
else
|
||||||
|
echo "--> Directory $dir bestaat niet, chown overgeslagen"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo "--> Permissions successfully set to www-data:www-data"
|
||||||
else
|
else
|
||||||
echo "--> Sudo not available, skipping chown."
|
echo "--> Sudo not available, skipping chown."
|
||||||
fi
|
fi
|
||||||
@@ -203,4 +190,50 @@ else
|
|||||||
echo "--> If you use PM2, restart your processes manually: pm2 restart all"
|
echo "--> If you use PM2, restart your processes manually: pm2 restart all"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "=== Update successfully completed! ==="
|
# ----------------------------------------
|
||||||
|
# 8. Extra Validation — 100% check
|
||||||
|
# ----------------------------------------
|
||||||
|
echo "--> Running extra validation..."
|
||||||
|
|
||||||
|
ERRORS=0
|
||||||
|
|
||||||
|
# Check build output exists
|
||||||
|
if [ -d "$NITRO_CLIENT/public/assets" ]; then
|
||||||
|
echo "--> [OK] Nitro-V3 build assets found"
|
||||||
|
else
|
||||||
|
echo "--> [FAIL] Nitro-V3 build assets missing!"
|
||||||
|
ERRORS=$((ERRORS + 1))
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check permissions on key files
|
||||||
|
for dir in "$NITRO_CLIENT" "$NITRO_RENDERER" "$EMULATOR_DIR" "$GAMEDATA_CONF_DIR"; do
|
||||||
|
if [ -d "$dir" ]; then
|
||||||
|
OWNER=$(stat -c '%U:%G' "$dir" 2>/dev/null || echo "unknown")
|
||||||
|
if [ "$OWNER" = "www-data:www-data" ] || [ "$(id -u)" -ne 0 ]; then
|
||||||
|
echo "--> [OK] $dir ($OWNER)"
|
||||||
|
else
|
||||||
|
if command -v sudo &> /dev/null; then
|
||||||
|
echo "--> [WARN] $dir heeft eigenaar $OWNER ipv www-data:www-data"
|
||||||
|
sudo chown -R www-data:www-data "$dir" 2>/dev/null || true
|
||||||
|
echo "--> Hersteld"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Check if emulator service is running
|
||||||
|
if systemctl list-units --type=service --all | grep -q "$EMULATOR_SERVICE.service"; then
|
||||||
|
SERVICE_STATUS=$(systemctl is-active "$EMULATOR_SERVICE" 2>/dev/null || echo "unknown")
|
||||||
|
if [ "$SERVICE_STATUS" = "active" ]; then
|
||||||
|
echo "--> [OK] $EMULATOR_SERVICE service is $SERVICE_STATUS"
|
||||||
|
else
|
||||||
|
echo "--> [WARN] $EMULATOR_SERVICE service is $SERVICE_STATUS"
|
||||||
|
ERRORS=$((ERRORS + 1))
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$ERRORS" -eq 0 ]; then
|
||||||
|
echo "=== ✅ Update 100% successfully completed! ==="
|
||||||
|
else
|
||||||
|
echo "=== ⚠️ Update completed with $ERRORS warning(s) — check bovenstaande output ==="
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user