Files
dcape-dns-config/Makefile
Alexey Kovrizhkin 03dcd0e8e2 add: psql target
2023-06-15 21:42:46 +03:00

79 lines
1.7 KiB
Makefile

SHELL = /bin/sh
CFG =.env
SOURCES ?= $(wildcard *.sql)
OBJECTS = $(SOURCES:.sql=.done)
OBJECTSDIRECT = $(SOURCES:.sql=.direct)
# ------------------------------------------------------------------------------
# шаблон файла .env
define CONFIG_DEF
# dcape-dns config file, generated by make $(CFG)
# Postgresql container name (access via docker)
PG_CONTAINER=dcape_db_1
# PowerDNS DB user name
PGUSER=pdns
# PowerDNS DB name
PGDATABASE=pdns
# Used ONLY for direct DB access without docker (start-direct)
PGPASSWORD=
endef
export CONFIG_DEF
all: help
# ------------------------------------------------------------------------------
-include $(CFG)
export
# ------------------------------------------------------------------------------
# dcape v1 comparibility
start-hook: update
start-direct: update-direct
stop:
$(CFG): $(CFG).sample
@[ -f $@ ] || cp $< $@
# ------------------------------------------------------------------------------
update: $(OBJECTS)
%.done: %.sql
@echo "*** $< ***"
@csum=$$(md5sum $< | sed 's/ .*//') ; \
cat $< | docker exec -i $$PG_CONTAINER psql -U $$PGUSER -d $$PGDATABASE -vcsum=$$csum > $@
# ------------------------------------------------------------------------------
update-direct: $(CFG) $(OBJECTSDIRECT)
%.direct: %.sql
@echo "*** $< ***"
@source $(CFG) && cat $< | PGPASSWORD=$$PGPASSWORD psql -h localhost -U $$PGUSER > $@
# ------------------------------------------------------------------------------
psql:
@docker exec -it $$PG_CONTAINER psql -U $$PGUSER $$PGDATABASE
clean:
rm -rf *.done
$(CFG).sample:
@echo "*** $@ ***"
@[ -f $@ ] || echo "$$CONFIG_DEF" > $@
## generate sample config
config: $(CFG).sample