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
 |