From 3803446bcd539205af129cc5776ca4034e356629 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Wed, 28 Nov 2018 14:57:05 +0100 Subject: Add option DTL_PREFIX for erlydtl-produced module names --- plugins/erlydtl.mk | 5 +++-- test/plugin_erlydtl.mk | 25 +++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/plugins/erlydtl.mk b/plugins/erlydtl.mk index 79a1581..3a8b705 100644 --- a/plugins/erlydtl.mk +++ b/plugins/erlydtl.mk @@ -5,6 +5,7 @@ DTL_FULL_PATH ?= DTL_PATH ?= templates/ +DTL_PREFIX ?= DTL_SUFFIX ?= _dtl DTL_OPTS ?= @@ -20,7 +21,7 @@ DTL_FILES := $(sort $(call core_find,$(DTL_PATH),*.dtl)) ifneq ($(DTL_FILES),) -DTL_NAMES = $(addsuffix $(DTL_SUFFIX),$(DTL_FILES:$(DTL_PATH)/%.dtl=%)) +DTL_NAMES = $(addprefix $(DTL_PREFIX),$(addsuffix $(DTL_SUFFIX),$(DTL_FILES:$(DTL_PATH)/%.dtl=%))) DTL_MODULES = $(if $(DTL_FULL_PATH),$(subst /,_,$(DTL_NAMES)),$(notdir $(DTL_NAMES))) BEAM_FILES += $(addsuffix .beam,$(addprefix ebin/,$(DTL_MODULES))) @@ -45,7 +46,7 @@ define erlydtl_compile.erl "$(DTL_PATH)/" ++ F2 = filename:rootname(F, ".dtl"), re:replace(F2, "/", "_", [{return, list}, global]) end, - Module = list_to_atom(string:to_lower(Module0) ++ "$(DTL_SUFFIX)"), + Module = list_to_atom("$(DTL_PREFIX)" ++ string:to_lower(Module0) ++ "$(DTL_SUFFIX)"), case erlydtl:compile(F, Module, [$(DTL_OPTS)] ++ [{out_dir, "ebin/"}, return_errors]) of ok -> ok; {ok, _} -> ok diff --git a/test/plugin_erlydtl.mk b/test/plugin_erlydtl.mk index a6619dc..1735595 100644 --- a/test/plugin_erlydtl.mk +++ b/test/plugin_erlydtl.mk @@ -198,6 +198,31 @@ erlydtl-path-full-path-suffix: build clean {ok, [one_suffix, two_three_suffix]} = application:get_key($(APP), modules), \ halt()" +erlydtl-prefix: build clean + + $i "Bootstrap a new OTP library named $(APP)" + $t mkdir $(APP)/ + $t cp ../erlang.mk $(APP)/ + $t $(MAKE) -C $(APP) -f erlang.mk bootstrap-lib $v + + $i "Generate ErlyDTL templates" + $t mkdir $(APP)/templates/ + $t touch $(APP)/templates/one.dtl + $t touch $(APP)/templates/two.dtl + + $i "Build the application" + $t $(MAKE) -C $(APP) DEPS=erlydtl DTL_PREFIX=number_ $v + + $i "Check that ErlyDTL templates are compiled" + $t test -f $(APP)/ebin/number_one_dtl.beam + $t test -f $(APP)/ebin/number_two_dtl.beam + + $i "Check that ErlyDTL generated modules are included in .app file" + $t $(ERL) -pa $(APP)/ebin/ -eval " \ + ok = application:load($(APP)), \ + {ok, [number_one_dtl, number_two_dtl]} = application:get_key($(APP), modules), \ + halt()" + erlydtl-suffix: build clean $i "Bootstrap a new OTP library named $(APP)" -- cgit v1.2.3