-
Notifications
You must be signed in to change notification settings - Fork 1
/
GNUmakefile
120 lines (104 loc) · 3.1 KB
/
GNUmakefile
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
NAME=epcc
HOSTNAME=elasticpath.com
NAMESPACE=elasticpath
BINARY=terraform-provider-${NAME}
VERSION=0.0.1
OS :=
ARCH :=
ifeq ($(OS),Windows_NT)
OS = windows
ifeq ($(PROCESSOR_ARCHITECTURE),AMD64)
ARCH = amd64
endif
ifeq ($(PROCESSOR_ARCHITECTURE),x86)
ARCH = 386
endif
else
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Linux)
OS = linux
endif
ifeq ($(UNAME_S),Darwin)
OS = darwin
endif
UNAME_M := $(shell uname -m)
ifeq ($(UNAME_M),x86_64)
ARCH=amd64
endif
ifneq ($(filter %86,$(UNAME_M)),)
ARCH=386
endif
ifneq ($(filter arm%,$(UNAMEMP)),)
ARCH=arm
endif
endif
OS_ARCH=${OS}_${ARCH}
default: install
build:
go build -o ./bin/${BINARY}
release:
GOOS=darwin GOARCH=amd64 go build -o ./bin/${BINARY}_${VERSION}_darwin_amd64
GOOS=freebsd GOARCH=386 go build -o ./bin/${BINARY}_${VERSION}_freebsd_386
GOOS=freebsd GOARCH=amd64 go build -o ./bin/${BINARY}_${VERSION}_freebsd_amd64
GOOS=freebsd GOARCH=arm go build -o ./bin/${BINARY}_${VERSION}_freebsd_arm
GOOS=linux GOARCH=386 go build -o ./bin/${BINARY}_${VERSION}_linux_386
GOOS=linux GOARCH=amd64 go build -o ./bin/${BINARY}_${VERSION}_linux_amd64
GOOS=linux GOARCH=arm go build -o ./bin/${BINARY}_${VERSION}_linux_arm
GOOS=openbsd GOARCH=386 go build -o ./bin/${BINARY}_${VERSION}_openbsd_386
GOOS=openbsd GOARCH=amd64 go build -o ./bin/${BINARY}_${VERSION}_openbsd_amd64
GOOS=solaris GOARCH=amd64 go build -o ./bin/${BINARY}_${VERSION}_solaris_amd64
GOOS=windows GOARCH=386 go build -o ./bin/${BINARY}_${VERSION}_windows_386
GOOS=windows GOARCH=amd64 go build -o ./bin/${BINARY}_${VERSION}_windows_amd64
install: build
mkdir -p ~/.terraform.d/plugins/${HOSTNAME}/${NAMESPACE}/${NAME}/${VERSION}/${OS_ARCH}
cp bin/${BINARY} ~/.terraform.d/plugins/${HOSTNAME}/${NAMESPACE}/${NAME}/${VERSION}/${OS_ARCH}
clean:
rm -rf bin || true
rm -rf ~/.terraform.d/plugins/${HOSTNAME}/${NAMESPACE}/${NAME} || true
# Run acceptance tests
.PHONY: testacc
testacc:
(\
set -o allexport && [[ -f .env ]] && source ./.env && set +o allexport || true ; \
TF_ACC=1 go test ./... -v $(TESTARGS) -timeout 120m \
)
.PHONY: example
example: install
(\
set -o allexport && [[ -f .env ]] && source ./.env && set +o allexport || true ; \
pushd $(EXAMPLE) && \
(rm .terraform.lock.hcl || true) && \
terraform init && \
terraform $(ACTION) && \
popd \
)
.PHONY: example
resource: install
(\
set -o allexport && [[ -f .env ]] && source ./.env && set +o allexport || true ; \
pushd examples/resources/$(TYPE)_resource && \
(rm .terraform.lock.hcl || true) && \
terraform init && \
terraform $(ACTION) && \
popd \
)
.PHONY: example
data-source: install
(\
set -o allexport && [[ -f .env ]] && source ./.env && set +o allexport || true ; \
pushd examples/data-sources/$(TYPE)_data_source && \
(rm .terraform.lock.hcl || true) && \
terraform init && \
terraform $(ACTION) && \
popd \
)
.PHONY: docs
docs: install
(\
set -o allexport && [[ -f .env ]] && source ./.env && set +o allexport || true ; \
(rm .terraform.lock.hcl || true) && \
terraform init && \
go generate \
)
prepare:
( terraform fmt -recursive && go fmt ./... && go generate)