Initial commit

This commit is contained in:
eleksir
2025-06-08 04:32:16 +03:00
parent c1ad1d3925
commit 6a2361870f
7 changed files with 174 additions and 26 deletions

View File

@@ -2,18 +2,71 @@
GOOPTS=CGO_ENABLED=0
BUILDOPTS=-ldflags="-s -w" -a -gcflags=all=-l -trimpath -buildvcs=false
MYNAME=bunny-bot
BINARY=$MYNAME
RMCMD=$(RM) -r
# На windows имя бинарника может зависеть не только от платформы, но и от выбранной цели, для linux-а суффикс .exe
# не нужен
ifeq ($(OS),Windows_NT)
ifeq ($(strip $(GOOS)),)
BINARY=${MYNAME}.exe
RMCMD=DEL /Q /F
endif
endif
# Явно определяем символ новой строки, чтобы избежать неоднозначности на windows
define IFS
endef
all: clean build
build:
${GOOPTS} go build ${BUILDOPTS} -o bunny-bot ./cmd/bunny-bot
# Ну и дальше просто билдим бинарник средствами гошки
ifeq ($(OS),Windows_NT)
# вариант с powershell на windows
ifeq ($(SHELL),sh.exe)
SET "CGO_ENABLED=0"
go build ${BUILDOPTS} -o ${BINARY} ./cmd/${MYNAME}
else
# вариант с jetbrains golang на windows
CGO_ENABLED=0 go build ${BUILDOPTS} -o ${BINARY} ./cmd/${MYNAME}
endif
else
# вариант с bash/git (windows) и bash (linux)
CGO_ENABLED=0 go build ${BUILDOPTS} -o ${BINARY} ./cmd/${MYNAME}
endif
clean:
rm -rf bunny-bot
ifeq ($(OS),Windows_NT)
ifeq (,$(findstring(Git/usr/bin/sh.exe, $(SHELL))))
rm -rf ${BINARY}
else
if exist ${BINARY} ${RMCMD} ${BINARY} >nul
endif
else
${RMCMD} ${BINARY}
endif
upgrade:
rm -rf vendor
go get -u -t -tool ./...
ifeq ($(OS),Windows_NT)
# вариант с jetbrains golang на windows или powershell на windows
ifeq ($(SHELL),sh.exe)
if exist vendor del /F /S /Q vendor >nul
# вариант с git/bash на windows
else
$(RM) -r vendor
endif
# вариант с bash на linux
else
$(RM) -r vendor
endif
go get -d -u ./...
go mod tidy
go mod vendor