summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2016-02-19 16:15:14 +0100
committertv <tv@krebsco.de>2016-02-20 02:02:07 +0100
commitc040c8f1b5fcfbd1b784c9460f4a0b78091ff2db (patch)
tree8269698137e959d999ec0b916b45fba744568eb7 /Makefile
parentcb258d399015cf8fe1439b21e6b1208d72101adc (diff)
make: allow evaluation of arbitrary expressions
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile10
1 files changed, 6 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index 9dcd47548..12a60a90b 100644
--- a/Makefile
+++ b/Makefile
@@ -46,10 +46,12 @@ evaluate = \
--show-trace \
-I nixos-config=$(nixos-config) \
-I stockholm=$(stockholm) \
- $(1)
+ -E '{ eval, f }: f eval' \
+ --arg eval 'import ./.' \
+ --arg f "eval@{ config, ... }: $(1)"
execute = \
- result=$$($(call evaluate,-A config.krebs.build.$(1) --json)) && \
+ result=$$($(call evaluate,config.krebs.build.$(1))) && \
script=$$(echo "$$result" | jq -r .) && \
echo "$$script" | PS5=% sh
@@ -61,8 +63,8 @@ deploy:
nixos-rebuild switch --show-trace -I $(target_path)
# usage: make LOGNAME=shared system=wolf eval.config.krebs.build.host.name
-eval eval.:;@$(call evaluate)
-eval.%:;@$(call evaluate,-A $*)
+eval eval.:;@$(call evaluate,$${expr-eval})
+eval.%:;@$(call evaluate,$*)
# usage: make install system=foo [target_host=bar]
install: ssh ?= ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null