Files
autoglue/terraform-provider-autoglue/Makefile
2025-11-06 02:36:17 +00:00

72 lines
2.1 KiB
Makefile

# ---- Provider build/dev settings ----
BIN ?= terraform-provider-autoglue
VER ?= 0.0.1
OS ?= $(shell uname -s | tr '[:upper:]' '[:lower:]')
ARCH ?= $(shell uname -m | sed 's/x86_64/amd64/;s/arm64/arm64/')
PROVIDER_SRC ?= glueops/autoglue/autoglue
# ---- tfplugindocs settings ----
# Where Go places binaries
BIN_DIR := $(shell go env GOBIN)
ifeq ($(BIN_DIR),)
BIN_DIR := $(shell go env GOPATH)/bin
endif
DOCS_BIN := $(BIN_DIR)/tfplugindocs
DOCS_DIR ?= docs
.PHONY: build tidy dev clean tools docs docs-validate docs-clean docs-readme
# Build the provider binary in the repo root
build:
go build -o $(BIN) .
# Tidy module deps
tidy:
go mod tidy
# Install the provider locally for Terraform/OpenTofu as a dev provider
dev:
@echo "Installing dev provider v$(VER) for $(OS)_$(ARCH)..."
@DST="$${HOME}/.terraform.d/plugins/$(PROVIDER_SRC)/$(VER)/$(OS)_$(ARCH)"; \
mkdir -p "$$DST"; \
go build -o "$$DST/terraform-provider-autoglue_v$(VER)" .; \
echo "Provider installed to $$DST"; \
echo "Run: terraform init -upgrade"
# Remove build artifacts (and optionally generated docs if desired)
clean:
rm -f $(BIN)
# ---------- Docs via tfplugindocs ----------
# Ensure tfplugindocs is available; install if missing
tools:
@set -e; \
if [ ! -x "$(DOCS_BIN)" ]; then \
echo "tfplugindocs not found. Installing..."; \
go install github.com/hashicorp/terraform-plugin-docs/cmd/tfplugindocs@latest; \
echo "Installed tfplugindocs to $(DOCS_BIN)"; \
else \
echo "tfplugindocs found at $(DOCS_BIN)"; \
fi
# Generate docs from your Go schemas into ./docs
docs: tools
@echo "Generating provider docs into ./$(DOCS_DIR)..."
@$(DOCS_BIN)
@echo "Done. See ./$(DOCS_DIR)"
# Validate docs are up-to-date (useful in CI)
docs-validate: tools
@$(DOCS_BIN) validate
# Clean generated docs
docs-clean:
@rm -rf $(DOCS_DIR)
# OPTIONAL: copy the generated landing page to README.md
docs-readme: docs
@[ -f "$(DOCS_DIR)/index.md" ] && cp "$(DOCS_DIR)/index.md" README.md || \
(echo "$(DOCS_DIR)/index.md not found. Did doc generation run?"; exit 1)
@echo "README.md updated from $(DOCS_DIR)/index.md"