From 24b4f6988b59e833ae1da61570c7cd7dc7f76b45 Mon Sep 17 00:00:00 2001 From: "aynic.os" Date: Tue, 18 May 2021 09:09:28 +0200 Subject: [PATCH] wip --- make/def.docker.mk | 4 ++-- make/def.mk | 4 ++-- make/env.mk | 8 ++++++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/make/def.docker.mk b/make/def.docker.mk index f496021..0c719c6 100644 --- a/make/def.docker.mk +++ b/make/def.docker.mk @@ -55,13 +55,13 @@ else SHELL := /bin/bash define docker-run - $(ECHO) docker run $(DOCKER_RUN_OPTIONS) $(patsubst %,--env-file %,$(ENV_FILE)) $(foreach var,$(ENV_VARS),$(if $($(var)),-e $(var)='$($(var))')) $(shell printenv |awk -F '=' 'NR == FNR { if($$1 !~ /^(\#|$$)/) { A[$$1]; next } } ($$1 in A) {print "-e "$$0}' .env.dist - 2>/dev/null) $(DOCKER_RUN_VOLUME) $(DOCKER_RUN_WORKDIR) $(or $(1),$(DOCKER_IMAGE):$(DOCKER_IMAGE_TAG)) $(2) + $(ECHO) docker run $(DOCKER_RUN_OPTIONS) $(patsubst %,--env-file %,$(ENV_FILE)) $(env.docker.args) $(env.docker.dist) $(DOCKER_RUN_VOLUME) $(DOCKER_RUN_WORKDIR) $(or $(1),$(DOCKER_IMAGE):$(DOCKER_IMAGE_TAG)) $(2) endef define exec $(call run,sh -c '$(or $(1),$(SHELL))') endef define run - IFS=$$'\n'; $(ECHO) env $(ENV_ARGS) $$(cat $(ENV_FILE) 2>/dev/null |awk -F "=" '$$1 ~! /^\(#|$$\)/') $(1) + IFS=$$'\n'; env $(env_reset) $(env.args) $(env.dist) $(env.file) $(1) endef endif diff --git a/make/def.mk b/make/def.mk index a4fe586..3f0dba8 100644 --- a/make/def.mk +++ b/make/def.mk @@ -55,9 +55,9 @@ VERBOSE ?= true VERSION ?= $(shell git describe --tags $(BRANCH) 2>/dev/null || git rev-parse $(BRANCH) 2>/dev/null) ifeq ($(DOCKER), true) -ENV_ARGS = $(foreach var,$(ENV_VARS),$(if $($(var)),-e $(var)='$($(var))')) $(shell printenv |awk -F '=' 'NR == FNR { if($$1 !~ /^(\#|$$)/) { A[$$1]; next } } ($$1 in A) {print "-e "$$0}' .env.dist - 2>/dev/null) +ENV_ARGS = $(env.docker.args) $(env.docker.dist) else -ENV_ARGS = $(foreach var,$(ENV_VARS),$(if $($(var)),$(var)='$($(var))')) $(shell printenv |awk -F '=' 'NR == FNR { if($$1 !~ /^(\#|$$)/) { A[$$1]; next } } ($$1 in A)' .env.dist - 2>/dev/null) +ENV_ARGS = $(env.args) $(env.dist) endif ifneq ($(DEBUG), true) diff --git a/make/env.mk b/make/env.mk index fbd46d6..f684fa4 100644 --- a/make/env.mk +++ b/make/env.mk @@ -7,14 +7,18 @@ # include .env file -include .env -env = IFS=$$'\n'; env $(env_reset) $(env_vars) "$(env.dist)" "$(env.file)" sh -c '$(1)' +env = $(env.args) "$(env.dist)" "$(env.file)" +env.docker = $(env.docker.args) "$(env.docker.dist)" $(env.docker.file) +env.args = $(foreach var,$(ENV_VARS),$(if $($(var)),$(var)='$($(var))')) env.dist = $(shell printenv |awk -F '=' 'NR == FNR { if($$1 !~ /^(\#|$$)/) { A[$$1]; next } } ($$1 in A)' .env.dist - 2>/dev/null) env.file = $(shell cat $(ENV_FILE) 2>/dev/null |sed '/^[ \t]*$$/d;/^[ \t]*\#/d;') +env.docker.args = $(foreach var,$(ENV_VARS),$(if $($(var)),-e $(var)='$($(var))')) +env.docker.dist = $(shell printenv |awk -F '=' 'NR == FNR { if($$1 !~ /^(\#|$$)/) { A[$$1]; next } } ($$1 in A) {print "-e "$$0}' .env.dist - 2>/dev/null) +env.docker.file = $(patsubst %,--env-file %,$(ENV_FILE)) ifneq (,$(filter true,$(ENV_RESET))) env_reset := -i endif -env_vars = $(foreach var,$(ENV_VARS),$(if $($(var)),$(var)='$($(var))')) SHELL:=/bin/bash