mirror of
https://github.com/GlueOps/autoglue.git
synced 2026-02-13 12:50:05 +01:00
72 lines
2.1 KiB
Makefile
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"
|