-
Notifications
You must be signed in to change notification settings - Fork 2
/
Makefile
139 lines (107 loc) · 3.69 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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# Copyright (C) 2021 Nicolas Lamirault <nicolas.lamirault@gmail.com>
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
APP = bbox_exporter
BANNER = B B O X E X P O R T E R
# Needs to be defined before including Makefile.common to auto-generate targets
DOCKER_ARCHS ?= amd64 armv7 arm64
include Makefile.common
DOCKER_IMAGE_NAME ?= bbox-exporter
# VERSION=$(shell \
# grep "const Version" version/version.go \
# |awk -F'=' '{print $$2}' \
# |sed -e "s/[^0-9.]//g" \
# |sed -e "s/ //g")
DEBUG ?=
SHELL = /bin/bash
DIR = $(shell pwd)
DOCKER = docker
GO = go
# GOX = gox -os="linux darwin windows freebsd openbsd netbsd"
GOX = gox -osarch="linux/amd64" -osarch="linux/arm64" -osarch="linux/arm" -osarch="darwin/amd64" -osarch="windows/amd64"
GOX_ARGS = "-output={{.Dir}}-$(VERSION)_{{.OS}}_{{.Arch}}"
MAIN = github.com/nlamirault/bbox_exporter
PACKAGE=$(APP)-$(VERSION)
ARCHIVE=$(PACKAGE).tar
EXE = $(shell ls bbox_exporter-*)
BINTRAY_URI = https://api.bintray.com
BINTRAY_USERNAME = nlamirault
BINTRAY_REPOSITORY= oss
NO_COLOR=\033[0m
OK_COLOR=\033[32;01m
ERROR_COLOR=\033[31;01m
WARN_COLOR=\033[33;01m
INFO_COLOR=\033[36m
WHITE_COLOR=\033[1m
MAKE_COLOR=\033[33;01m%-20s\033[0m
.DEFAULT_GOAL := help
OK=[✅]
KO=[❌]
WARN=[⚠️]
.PHONY: help
help:
@echo -e "$(OK_COLOR) $(BANNER)$(NO_COLOR)"
@echo "------------------------------------------------------------------"
@echo ""
@echo -e "${ERROR_COLOR}Usage${NO_COLOR}: make ${INFO_COLOR}<target>${NO_COLOR}"
@awk 'BEGIN {FS = ":.*##"; } /^[a-zA-Z0-9_-]+:.*?##/ { printf " ${INFO_COLOR}%-30s${NO_COLOR} %s\n", $$1, $$2 } /^##@/ { printf "\n${WHITE_COLOR}%s${NO_COLOR}\n", substr($$0, 5) } ' $(MAKEFILE_LIST)
guard-%:
@if [ "${${*}}" = "" ]; then \
echo -e "$(ERROR_COLOR)Environment variable $* not set$(NO_COLOR)"; \
exit 1; \
fi
check-%:
@if $$(hash $* 2> /dev/null); then \
echo -e "$(OK_COLOR)$(OK)$(NO_COLOR) $*"; \
else \
echo -e "$(ERROR_COLOR)$(KO)$(NO_COLOR) $*"; \
fi
print-%:
@if [ "${$*}" == "" ]; then \
echo -e "$(ERROR_COLOR)[KO]$(NO_COLOR) $* = ${$*}"; \
else \
echo -e "$(OK_COLOR)[OK]$(NO_COLOR) $* = ${$*}"; \
fi
# ====================================
# D E V E L O P M E N T
# ====================================
##@ Development
.PHONY: clean
clean: ## Cleanup
@echo -e "$(OK_COLOR)[$(APP)] Cleanup$(NO_COLOR)"
@rm -fr $(EXE) $(APP) $(APP)-*.tar.gz
.PHONY: validate
validate: ## Execute git-hooks
@pre-commit run -a
# .PHONY: build
# build: ## Make binary
# @echo -e "$(OK_COLOR)[$(APP)] Build $(NO_COLOR)"
# @$(GO) build .
# .PHONY: test
# test: ## Launch unit tests
# @echo -e "$(OK_COLOR)[$(APP)] Launch unit tests $(NO_COLOR)"
# @$(GO) test
# .PHONY: run
# run: ## Start exporter
# @echo -e "$(OK_COLOR)[$(APP)] Start the exporter $(NO_COLOR)"
# @./$(APP) -log.level DEBUG
# ====================================
# D O C K E R
# ====================================
##@ Docker
docker-build: guard-VERSION ## Build Docker image
@echo -e "$(OK_COLOR)Docker build $(APP):$(VERSION)$(NO_COLOR)"
@DOCKER_BUILDKIT=1 docker build -t $(APP):$(VERSION) .
docker-run: guard-VERSION ## Run the Docker image
@echo -e "$(OK_COLOR)Docker run $(APP):$(VERSION)$(NO_COLOR)"
@docker run --rm=true $(APP):$(VERSION) /bbox_exporter --help