76 lines
1.6 KiB
Makefile
76 lines
1.6 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 > $@
|
|
|
|
# ------------------------------------------------------------------------------
|
|
|
|
clean:
|
|
rm -rf *.done
|
|
|
|
$(CFG).sample:
|
|
@echo "*** $@ ***"
|
|
@[ -f $@ ] || echo "$$CONFIG_DEF" > $@
|
|
|
|
## generate sample config
|
|
config: $(CFG).sample
|