#!/usr/bin/make -f
##
## Dovecot: Makefile to compile system-wide Sieve scripts
##
## Template by OSS Technology Corp. <https://www.OSSTech.co.jp/>

DOVECOT_SYSCONF_DIR=	/opt/osstech/etc/dovecot
DOVECOT_CACHE_DIR=	/opt/osstech/var/cache/dovecot
DOVECOT_SIEVEC=		/opt/osstech/bin/sievec

.PHONY: default
default:
	@ cd $(DOVECOT_SYSCONF_DIR) && $(MAKE) all

.PHONY: all
all: sieve

.PHONY: sieve
sieve:
	@ set -e; \
	  cd $(DOVECOT_SYSCONF_DIR); \
	  for sieve_src in sieve-*.d/*.sieve; do \
	    [ -f "$$sieve_src" ] || continue; \
	    sieve="$(DOVECOT_CACHE_DIR)/$$sieve_src"; \
	    svbin="$${sieve%.sieve}.svbin"; \
	    echo "Installing $$sieve_src ..."; \
	    cp -p "$$sieve_src" "$$sieve.$$.tmp"; \
	    mv "$$sieve.$$.tmp" "$$sieve"; \
	    echo "Compiling $$sieve ..."; \
	    $(DOVECOT_SIEVEC) "$$sieve" "$$svbin.$$.tmp"; \
	    chmod 0644 "$$svbin.$$.tmp"; \
	    mv "$$svbin.$$.tmp" "$$svbin"; \
	  done
	@ set -e; \
	  cd $(DOVECOT_CACHE_DIR); \
	  for sieve in sieve-*.d/*.sieve; do \
	    [ -f "$$sieve" ] || continue; \
	    [ -f "$(DOVECOT_SYSCONF_DIR)/$$sieve" ] && continue; \
	    svbin="$${sieve%.sieve}.svbin"; \
	    echo "Removing $$sieve ..."; \
	    rm "$$sieve" "$$svbin"; \
	  done
