aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/erlydtl.mk
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2015-08-26 17:10:29 +0200
committerLoïc Hoguin <[email protected]>2015-08-26 17:11:39 +0200
commite88092a674ebf3572c7bc2ca86177c3e8c16a59c (patch)
tree85e2cee7a1a6d1a5200780918a05a9bd3761e9cf /plugins/erlydtl.mk
parentd86f65346df71bd5608315fc244ed49cbf7aa431 (diff)
downloaderlang.mk-e88092a674ebf3572c7bc2ca86177c3e8c16a59c.tar.gz
erlang.mk-e88092a674ebf3572c7bc2ca86177c3e8c16a59c.tar.bz2
erlang.mk-e88092a674ebf3572c7bc2ca86177c3e8c16a59c.zip
Improve the erlydtl plugin
Among the improvements: * Work with current versions of ErlyDTL * Add DTL_PATH, defaulting to templates/ * Add DTL_SUFFIX, defaulting to _dtl (suffix of output module names) * Simplify the Erlang code and port to the erlang function The erlang function can now accept any command-line argument for erl as optional second argument.
Diffstat (limited to 'plugins/erlydtl.mk')
-rw-r--r--plugins/erlydtl.mk34
1 files changed, 21 insertions, 13 deletions
diff --git a/plugins/erlydtl.mk b/plugins/erlydtl.mk
index 46a3080..1f33bc6 100644
--- a/plugins/erlydtl.mk
+++ b/plugins/erlydtl.mk
@@ -4,6 +4,8 @@
# Configuration.
DTL_FULL_PATH ?= 0
+DTL_PATH ?= templates/
+DTL_SUFFIX ?= _dtl
# Verbosity.
@@ -12,20 +14,26 @@ dtl_verbose = $(dtl_verbose_$(V))
# Core targets.
-define compile_erlydtl
- $(dtl_verbose) $(ERL) -pa ebin/ $(DEPS_DIR)/erlydtl/ebin/ -eval ' \
- Compile = fun(F) -> \
- S = fun (1) -> re:replace(filename:rootname(string:sub_string(F, 11), ".dtl"), "/", "_", [{return, list}, global]); \
- (0) -> filename:basename(F, ".dtl") \
- end, \
- Module = list_to_atom(string:to_lower(S($(DTL_FULL_PATH))) ++ "_dtl"), \
- {ok, _} = erlydtl:compile(F, Module, [{out_dir, "ebin/"}, return_errors, {doc_root, "templates"}]) \
- end, \
- _ = [Compile(F) || F <- string:tokens("$(1)", " ")], \
- halt().'
+define erlydtl_compile.erl
+ [begin
+ Module0 = case $(DTL_FULL_PATH) of
+ 0 ->
+ filename:basename(F, ".dtl");
+ 1 ->
+ "$(DTL_PATH)" ++ F2 = filename:rootname(F, ".dtl"),
+ re:replace(F2, "/", "_", [{return, list}, global])
+ end,
+ Module = list_to_atom(string:to_lower(Module0) ++ "$(DTL_SUFFIX)"),
+ case erlydtl:compile(F, Module, [{out_dir, "ebin/"}, return_errors, {doc_root, "templates"}]) of
+ ok -> ok;
+ {ok, _} -> ok
+ end
+ end || F <- string:tokens("$(1)", " ")],
+ halt().
endef
ifneq ($(wildcard src/),)
-ebin/$(PROJECT).app:: $(sort $(call core_find,templates/,*.dtl))
- $(if $(strip $?),$(call compile_erlydtl,$?))
+ebin/$(PROJECT).app:: $(sort $(call core_find,$(DTL_PATH),*.dtl))
+ $(if $(strip $?),\
+ $(dtl_verbose) $(call erlang,$(call erlydtl_compile.erl,$?,-pa ebin/ $(DEPS_DIR)/erlydtl/ebin/)))
endif