137 lines
3.1 KiB
Batchfile
137 lines
3.1 KiB
Batchfile
@echo off
|
|
setlocal
|
|
|
|
set BINARY_NAME=bin\srs-sip.exe
|
|
set MAIN_PATH=main\main.go
|
|
set VUE_DIR=html\NextGB
|
|
set CONFIG_FILE=conf\config.yaml
|
|
|
|
if "%1"=="" goto all
|
|
if "%1"=="build" goto build
|
|
if "%1"=="clean" goto clean
|
|
if "%1"=="run" goto run
|
|
if "%1"=="vue-install" goto vue-install
|
|
if "%1"=="vue-build" goto vue-build
|
|
if "%1"=="vue-dev" goto vue-dev
|
|
if "%1"=="all" goto all
|
|
|
|
:build
|
|
echo Building Go binary...
|
|
if not exist "bin" mkdir bin
|
|
go build -o %BINARY_NAME% %MAIN_PATH%
|
|
|
|
echo Copying config file...
|
|
if exist "%CONFIG_FILE%" (
|
|
mkdir "bin\%~dp0%CONFIG_FILE%" 2>nul
|
|
xcopy /s /i /y "%CONFIG_FILE%" "bin\%~dp0%CONFIG_FILE%\"
|
|
echo Config file copied to bin\%~dp0%CONFIG_FILE%
|
|
) else (
|
|
echo Warning: %CONFIG_FILE% not found
|
|
)
|
|
goto :eof
|
|
|
|
:clean
|
|
echo Cleaning...
|
|
if exist %BINARY_NAME% del /F /Q %BINARY_NAME%
|
|
if exist %VUE_DIR%\dist rd /S /Q %VUE_DIR%\dist
|
|
if exist %VUE_DIR%\node_modules rd /S /Q %VUE_DIR%\node_modules
|
|
if exist bin\html rd /S /Q bin\html
|
|
if exist bin\%CONFIG_FILE% del /F /Q bin\%CONFIG_FILE%
|
|
goto :eof
|
|
|
|
:run
|
|
echo Running application...
|
|
go build -o %BINARY_NAME% %MAIN_PATH%
|
|
%BINARY_NAME%
|
|
goto :eof
|
|
|
|
:vue-install
|
|
echo Installing Vue dependencies...
|
|
cd %VUE_DIR%
|
|
call npm install
|
|
cd ..\..
|
|
goto :eof
|
|
|
|
:vue-build
|
|
echo Building Vue project...
|
|
if not exist "%VUE_DIR%" (
|
|
echo Error: Vue directory not found at %VUE_DIR%
|
|
goto :eof
|
|
)
|
|
|
|
rem Check Node.js version
|
|
where node >nul 2>nul
|
|
if errorlevel 1 (
|
|
echo Error: Node.js is not installed
|
|
goto :eof
|
|
)
|
|
|
|
for /f "tokens=1,2,3 delims=." %%a in ('node -v') do (
|
|
set NODE_MAJOR=%%a
|
|
)
|
|
set NODE_MAJOR=%NODE_MAJOR:~1%
|
|
if %NODE_MAJOR% LSS 17 (
|
|
echo Error: Node.js version 17 or higher is required ^(current version: %NODE_MAJOR%^)
|
|
echo Please upgrade Node.js using the official installer or nvm-windows
|
|
goto :eof
|
|
)
|
|
|
|
pushd %VUE_DIR%
|
|
echo Current directory: %CD%
|
|
if not exist "package.json" (
|
|
echo Error: package.json not found in %VUE_DIR%
|
|
popd
|
|
goto :eof
|
|
)
|
|
|
|
rem Check if node_modules exists and install dependencies if needed
|
|
if not exist "node_modules" (
|
|
echo Node modules not found, installing dependencies...
|
|
call npm install
|
|
if errorlevel 1 (
|
|
echo Error: Failed to install dependencies
|
|
popd
|
|
goto :eof
|
|
)
|
|
)
|
|
|
|
echo Running npm run build...
|
|
call npm run build
|
|
if errorlevel 1 (
|
|
echo Error: Vue build failed
|
|
popd
|
|
goto :eof
|
|
)
|
|
popd
|
|
echo Vue build completed successfully
|
|
|
|
echo Copying dist files to bin directory...
|
|
if exist bin\html rd /S /Q bin\html
|
|
if not exist bin mkdir bin
|
|
if not exist "%VUE_DIR%\dist" (
|
|
echo Error: Vue dist directory not found at %VUE_DIR%\dist
|
|
goto :eof
|
|
)
|
|
robocopy "%VUE_DIR%\dist" "bin\html" /E /NFL /NDL /NJH /NJS /nc /ns /np
|
|
if errorlevel 8 (
|
|
echo Error copying files
|
|
) else (
|
|
echo Vue dist files successfully copied to bin\html
|
|
)
|
|
goto :eof
|
|
|
|
:vue-dev
|
|
echo Starting Vue development server...
|
|
cd %VUE_DIR%
|
|
call npm run dev
|
|
cd ..\..
|
|
goto :eof
|
|
|
|
:all
|
|
echo Building entire project...
|
|
call :build
|
|
call :vue-build
|
|
echo.
|
|
echo Press any key to exit...
|
|
pause>nul
|
|
goto :eof |