1+ .PHONY : all build test lint clean svc cli prov help
2+
3+ # Default goal
4+ .DEFAULT_GOAL := help
5+
6+ # Build all components
7+ all : build # # Build all components
8+
9+ build : build-svc build-cli build-prov # # Build service, CLI, and provider
10+
11+ build-svc : # # Build the OpenTaco service
12+ @echo " Building OpenTaco service..."
13+ cd cmd/opentacosvc && GOWORK=off go build -o ../../opentacosvc .
14+
15+ build-cli : # # Build the taco CLI
16+ @echo " Building taco CLI..."
17+ cd cmd/taco && GOWORK=off go build -o ../../taco .
18+
19+ build-prov : # # Build the Terraform provider
20+ @echo " Building Terraform provider..."
21+ cd providers/terraform/opentaco && GOWORK=off go build -o ../../../terraform-provider-opentaco .
22+
23+ install : install-svc install-cli # # Install service and CLI
24+
25+ install-svc : # # Build the OpenTaco service
26+ @echo " Installing OpenTaco service..."
27+ cd cmd/opentacosvc && GOWORK=off go install .
28+
29+ install-cli : # # Build the taco CLI
30+ @echo " Installing taco CLI..."
31+ cd cmd/taco && GOWORK=off go install .
32+
33+ # Run components
34+ svc : build-svc # # Run the OpenTaco service
35+ @echo " Starting OpenTaco service on :8080..."
36+ ./opentacosvc
37+
38+ cli : build-cli # # Build and show CLI help
39+ @echo " Taco CLI built. Run ./taco --help for usage"
40+ ./taco --help
41+
42+ # Development
43+ test : # # Run tests
44+ @echo " Running tests..."
45+ cd cmd/opentacosvc && go test ./...
46+ cd cmd/taco && go test ./...
47+ cd pkg/sdk && go test ./...
48+ cd providers/terraform/opentaco && go test ./...
49+
50+ lint : # # Run linters
51+ @echo " Running linters..."
52+ golangci-lint run ./...
53+
54+ clean : # # Clean build artifacts
55+ @echo " Cleaning build artifacts..."
56+ rm -f opentacosvc taco terraform-provider-opentaco
57+ rm -rf .devdata/*
58+ find . -name " *.test" -delete
59+ find . -name " *.out" -delete
60+
61+ # Initialize modules
62+ init : # # Initialize Go modules
63+ @echo " Initializing Go modules..."
64+ cd cmd/opentacosvc && go mod init github.com/digger/opentaco/cmd/opentacosvc && go mod tidy
65+ cd cmd/taco && go mod init github.com/digger/opentaco/cmd/taco && go mod tidy
66+ cd pkg/sdk && go mod init github.com/digger/opentaco/pkg/sdk && go mod tidy
67+ cd providers/terraform/opentaco && go mod init github.com/digger/opentaco/providers/terraform/opentaco && go mod tidy
68+
69+ help : # # Show this help
70+ @grep -E ' ^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST ) | awk ' BEGIN {FS = ":.*?## "}; {printf "\033[36m%-15s\033[0m %s\n", $$1, $$2}'
0 commit comments