@ECHO OFF TITLE Knoks - deployment to d01 environmen script ECHO === set vars ================================================================================= FOR %%A IN ("%~dp0\..") DO SET "PROJECT_DIR=%%~fA" SET BACH_FILE_NAME_WITH_EXTENTION=%~n0%~x0 SET BACH_FILE_NAME_WITHOUT_EXTENTION=%~n0 SET SRC_SYNC=%PROJECT_DIR%\dist SET DST_SYNC=/home/ec2-user/ldi/BO SET PRIVATEKEY_FILE=C:\Users\user\Dropbox\Dev\LDI\AWS\LDI-DEV-KP.ppk ECHO Project directory: %PROJECT_DIR% ECHO Bach file name with extention: %BACH_FILE_NAME_WITH_EXTENTION% ECHO Bach file name withou extention: %BACH_FILE_NAME_WITHOUT_EXTENTION% ECHO Source: %SRC_SYNC% ECHO Destination: %DST_SYNC% ECHO Private key file: %PRIVATEKEY_FILE% ECHO. ECHO === detect sync mode (update or preview) ===================================================== IF "%~1"=="u" ( SET PREVIEW_OPT= ECHO Sync mode: UPDATE! ) ELSE ( SET PREVIEW_OPT=-preview ECHO Sync mode: Preview ) ECHO. ::ECHO === git pull by user's answer ================================================================ ::CHOICE /N /C:yn /M "Run 'git pull' ? (y/n)"%1 ::IF ERRORLEVEL 2 GOTO NoGitPull ::git pull :::NoGitPull ::ECHO. ECHO === npm run build ============================================================================ :: note this command is runing based on package.json file under project root directory call ng build --env=d01 ECHO. ECHO === create logs folder if not exists for WinSCP.com ========================================== IF EXIST "%PROJECT_DIR%\deploy\logs" ( ECHO Logs folder already exists ) ELSE ( ECHO Creat Logs folder MKDIR "%PROJECT_DIR%\Deploy\Logs" ) ECHO. ECHO === run WinSCP =============================================================================== ::help link: https://winscp.net/eng/docs/scriptcommand_synchronize "C:\Users\user\Dropbox\Dev\LDI\WinSCP\WinSCP.com" /log="%PROJECT_DIR%\deploy\logs\%BACH_FILE_NAME_WITHOUT_EXTENTION%.log" /ini=nul /command ^ "open scp://ec2-user@ec2-54-167-223-45.compute-1.amazonaws.com/ -hostkey=""ssh-ed25519 256 89:be:f3:ef:6b:64:fa:a0:e2:cc:01:e7:16:fd:a3:f7"" -privatekey=""%PRIVATEKEY_FILE%"" -rawsettings AuthGSSAPI=1 TimeDifference=""000000000000C03F"" TimeDifferenceAuto=0 SendBuf=0 SshSimple=0" ^ "synchronize remote %PREVIEW_OPT% -delete -preservetime -transfer=automatic %SRC_SYNC% %DST_SYNC%" ^ "exit" ECHO. ECHO === script end =============================================================================== ECHO Script completed! Press any key to exit... PAUSE > NUL