diff --git a/src/rebar_templater.erl b/src/rebar_templater.erl index 8e07694..7a21e7d 100644 --- a/src/rebar_templater.erl +++ b/src/rebar_templater.erl @@ -219,7 +219,7 @@ execute_template([], _TemplateType, _TemplateName, _Context, _Force, ExistingFil Help = "To force overwriting, specify force=1 on the command line.\n", ?ERROR("One or more files already exist on disk and were not generated:~n~s~s", [Msg , Help]) end; -execute_template([{file, Input, Output} | Rest], TemplateType, TemplateName, Context, Force, ExistingFiles) -> +execute_template([{file, Input, Output, Render} | Rest], TemplateType, TemplateName, Context, Force, ExistingFiles) -> % determine if the target file already exists FileExists = filelib:is_file(Output), @@ -234,7 +234,10 @@ execute_template([{file, Input, Output} | Rest], TemplateType, TemplateName, Con true -> ?CONSOLE("Writing ~s~n", [Output]) end, - case file:write_file(Output, render(load_file(TemplateType, InputName), Context)) of + Rendered = if Render -> render(load_file(TemplateType, InputName), Context); + true -> load_file(TemplateType, InputName) + end, + case file:write_file(Output, Rendered) of ok -> execute_template(Rest, TemplateType, TemplateName, Context, Force, ExistingFiles); {error, Reason} -> @@ -253,6 +256,10 @@ execute_template([{dir, Name} | Rest], TemplateType, TemplateName, Context, Forc end; execute_template([{variables, _} | Rest], TemplateType, TemplateName, Context, Force, ExistingFiles) -> execute_template(Rest, TemplateType, TemplateName, Context, Force, ExistingFiles); +execute_template([{file, Input, Output} | Rest], TemplateType, TemplateName, Context, Force, ExistingFiles) -> + %% old short-form of {file,_,_} is same as + %% new long-form of {file,_,_,true} + execute_template([{file, Input, Output, true}|Rest], TemplateType, TemplateName, Context, Force, ExistingFiles); execute_template([Other | Rest], TemplateType, TemplateName, Context, Force, ExistingFiles) -> ?WARN("Skipping unknown template instruction: ~p\n", [Other]), execute_template(Rest, TemplateType, TemplateName, Context, Force, ExistingFiles).