Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

42 lines
1.1 KiB

@echo off
setlocal
if not exist %1 exit /B 1
cd %1
:: Get the git commit
set _GIT_COMMIT_FILE=%TEMP%\consul-git_commit.txt
set _GIT_DIRTY_FILE=%TEMP%\consul-git_dirty.txt
set _GIT_DESCRIBE_FILE=%TEMP%\consul-git_describe.txt
set _NUL_CMP_FILE=%TEMP%\consul-nul_cmp.txt
type NUL >%_NUL_CMP_FILE%
git rev-parse HEAD >%_GIT_COMMIT_FILE%
set /p _GIT_COMMIT=<%_GIT_COMMIT_FILE%
del /F "%_GIT_COMMIT_FILE%" 2>NUL
set _GIT_DIRTY=
git status --porcelain >%_GIT_DIRTY_FILE%
fc %_GIT_DIRTY_FILE% %_NUL_CMP_FILE% >NUL
if errorlevel 1 set _GIT_DIRTY=+CHANGES
del /F "%_GIT_DIRTY_FILE%" 2>NUL
del /F "%_NUL_CMP_FILE%" 2>NUL
git describe --tags >%_GIT_DESCRIBE_FILE%
set /p _GIT_DESCRIBE=<%_GIT_DESCRIBE_FILE%
del /F "%_GIT_DESCRIBE_FILE%" 2>NUL
:: Install dependencies
echo --^> Installing dependencies to speed up builds...
go get .\...
:: Build!
echo --^> Building...
go build^
-ldflags "-X main.GitCommit=%_GIT_COMMIT%%_GIT_DIRTY% -X main.GitDescribe=%_GIT_DESCRIBE%"^
-v^
-o bin\consul.exe .
if errorlevel 1 exit /B 1
copy /B /Y bin\consul.exe %GOPATH%\bin\consul.exe >NUL