-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
54 lines (45 loc) · 2.48 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
GIT_TAG := $(shell echo $(shell git describe --tags || git branch --show-current) | sed 's/^v//')
COMMIT := $(shell git log -1 --format='%H')
BUILD_DATE := $(shell date '+%Y-%m-%d')
IS_SUDO_USER := $(shell if [ "$(shell whoami)" = "root" ] || [ "$(shell groups | grep -e 'sudo' -e 'admin' -e 'google-sudoers' | wc -l)" = "1" ]; then echo "1"; fi)
GO_BIN := $(shell echo $(shell which go || echo "/usr/local/go/bin/go" ))
###############################################################################
### Build flags ###
###############################################################################
LD_FLAGS = -X github.com/bcdevtools/node-management/constants.VERSION=$(GIT_TAG) \
-X github.com/bcdevtools/node-management/constants.COMMIT_HASH=$(COMMIT) \
-X github.com/bcdevtools/node-management/constants.BUILD_DATE=$(BUILD_DATE)
BUILD_FLAGS := -ldflags '$(LD_FLAGS)'
###############################################################################
### HTML ###
###############################################################################
html: client/html
@echo "Embedding HTML..."
@statik -src=client/html -dest=client/ -f
@echo "Embedded successfully"
.PHONY: html
###############################################################################
### Build ###
###############################################################################
build: go.sum
@echo "Building Node Management binary..."
@echo "Flags $(BUILD_FLAGS)"
@go build -mod=readonly $(BUILD_FLAGS) -o build/nmngd ./cmd/nmngd
@echo "Builded Node Management successfully"
.PHONY: build
###############################################################################
### Install ###
###############################################################################
install: go.sum
@echo "Installing Node Management binary..."
@echo "Flags $(BUILD_FLAGS)"
@go install -mod=readonly $(BUILD_FLAGS) ./cmd/nmngd
@echo " [v] Installed in GOPATH/bin"
@if [ "$(shell uname)" = "Linux" ] && [ "$(IS_SUDO_USER)" = "1" ]; then \
sudo mv $(shell $(GO_BIN) env GOPATH)/bin/nmngd /usr/local/bin/nmngd; \
echo " [v] Installed as global command"; \
else \
echo " [x] (Skipped) Install as global command"; \
fi
@echo "Installed Node Management successfully"
.PHONY: install