Spaces:
Runtime error
Runtime error
@echo off | |
@setlocal enabledelayedexpansion | |
pushd %~dp0 | |
echo Checking Git installation | |
git --version > nul 2>&1 | |
if %errorlevel% neq 0 ( | |
echo Git is not installed on this system. Skipping update. | |
echo If you installed with a zip file, you will need to download the new zip and install it manually. | |
goto end | |
) | |
REM Checking current branch | |
FOR /F "tokens=*" %%i IN ('git rev-parse --abbrev-ref HEAD') DO SET CURRENT_BRANCH=%%i | |
echo Current branch: %CURRENT_BRANCH% | |
REM Checking for automatic branch switching configuration | |
set AUTO_SWITCH= | |
FOR /F "tokens=*" %%j IN ('git config --local script.autoSwitch') DO SET AUTO_SWITCH=%%j | |
SET TARGET_BRANCH=%CURRENT_BRANCH% | |
if NOT "!AUTO_SWITCH!"=="" ( | |
if "!AUTO_SWITCH!"=="s" ( | |
goto autoswitch-staging | |
) | |
if "!AUTO_SWITCH!"=="r" ( | |
goto autoswitch-release | |
) | |
if "!AUTO_SWITCH!"=="staging" ( | |
:autoswitch-staging | |
echo Auto-switching to staging branch | |
git checkout staging | |
SET TARGET_BRANCH=staging | |
goto update | |
) | |
if "!AUTO_SWITCH!"=="release" ( | |
:autoswitch-release | |
echo Auto-switching to release branch | |
git checkout release | |
SET TARGET_BRANCH=release | |
goto update | |
) | |
echo Auto-switching defined to stay on current branch | |
goto update | |
) | |
if "!CURRENT_BRANCH!"=="staging" ( | |
echo Staying on the current branch | |
goto update | |
) | |
if "!CURRENT_BRANCH!"=="release" ( | |
echo Staying on the current branch | |
goto update | |
) | |
echo You are not on 'staging' or 'release'. You are on '!CURRENT_BRANCH!'. | |
set /p "CHOICE=Do you want to switch to 'staging' (s), 'release' (r), or stay (any other key)? " | |
if /i "!CHOICE!"=="s" ( | |
echo Switching to staging branch | |
git checkout staging | |
SET TARGET_BRANCH=staging | |
goto update | |
) | |
if /i "!CHOICE!"=="r" ( | |
echo Switching to release branch | |
git checkout release | |
SET TARGET_BRANCH=release | |
goto update | |
) | |
echo Staying on the current branch | |
:update | |
REM Checking for 'upstream' remote | |
git remote | findstr "upstream" > nul | |
if %errorlevel% equ 0 ( | |
echo Updating and rebasing against 'upstream' | |
git fetch upstream | |
git rebase upstream/%TARGET_BRANCH% --autostash | |
goto install | |
) | |
echo Updating and rebasing against 'origin' | |
git pull --rebase --autostash origin %TARGET_BRANCH% | |
:install | |
if %errorlevel% neq 0 ( | |
echo There were errors while updating. Please check manually. | |
goto end | |
) | |
echo Installing npm packages and starting server | |
set NODE_ENV=production | |
call npm install --no-audit --no-fund --quiet --omit=dev | |
node server.js %* | |
:end | |
pause | |
popd | |