SHELL := /usr/bin/env bash
.RECIPEPREFIX := >

SALT_CALL ?= salt-call
SALT_LINT ?= salt-lint
YAMLLINT ?= yamllint
STATE_ROOT ?= .
PILLAR_ROOT ?= ./pillar
MINION_ID ?= p-mailgw-x2-01.lmru.tech
MASTER_IP ?= 10.80.38.152
MASTER_HOST ?= p-mailgw-x1-01.lmru.tech

.PHONY: lint check apply verify update-check update cluster-bootstrap

lint:
>@if command -v $(SALT_LINT) >/dev/null 2>&1; then \
>  $(SALT_LINT) pmg/*.sls pillar/*.sls top.sls; \
>else \
>  echo "salt-lint не найден, пропускаю"; \
>fi
>@if command -v $(YAMLLINT) >/dev/null 2>&1; then \
>  $(YAMLLINT) .; \
>else \
>  echo "yamllint не найден, пропускаю"; \
>fi

check:
>sudo $(SALT_CALL) --local --id $(MINION_ID) --file-root=$(STATE_ROOT) --pillar-root=$(PILLAR_ROOT) state.apply pmg.init test=True

apply:
>sudo $(SALT_CALL) --local --id $(MINION_ID) --file-root=$(STATE_ROOT) --pillar-root=$(PILLAR_ROOT) state.apply pmg.init

verify:
>sudo $(SALT_CALL) --local --id $(MINION_ID) --file-root=$(STATE_ROOT) --pillar-root=$(PILLAR_ROOT) state.apply pmg.verify

update-check:
>sudo $(SALT_CALL) --local --id $(MINION_ID) --file-root=$(STATE_ROOT) --pillar-root=$(PILLAR_ROOT) state.apply pmg.update test=True

update:
>sudo $(SALT_CALL) --local --id $(MINION_ID) --file-root=$(STATE_ROOT) --pillar-root=$(PILLAR_ROOT) state.apply pmg.update

cluster-bootstrap:
>bash "./scripts/cluster-bootstrap.sh" "$(MINION_ID)" "$(MASTER_HOST)" "$(MASTER_IP)"
