Browse Source

Merge pull request #221 from kaos/erlydtl

Adapt erlydtl compiler plugin to latest version of erlydtl
pull/3/head
Jared Morrow 11 years ago
parent
commit
289a71e208
1 changed files with 20 additions and 9 deletions
  1. +20
    -9
      src/rebar_erlydtl_compiler.erl

+ 20
- 9
src/rebar_erlydtl_compiler.erl View File

@ -178,7 +178,7 @@ compile_dtl(Config, Source, Target, DtlOpts) ->
?ERROR("~n===============================================~n" ?ERROR("~n===============================================~n"
" You need to install erlydtl to compile DTL templates~n" " You need to install erlydtl to compile DTL templates~n"
" Download the latest tarball release from github~n" " Download the latest tarball release from github~n"
" http://code.google.com/p/erlydtl/~n"
" https://github.com/erlydtl/erlydtl/releases~n"
" and install it into your erlang library dir~n" " and install it into your erlang library dir~n"
"===============================================~n~n", []), "===============================================~n~n", []),
?FAIL; ?FAIL;
@ -194,15 +194,22 @@ compile_dtl(Config, Source, Target, DtlOpts) ->
do_compile(Config, Source, Target, DtlOpts) -> do_compile(Config, Source, Target, DtlOpts) ->
%% TODO: Check last mod on target and referenced DTLs here.. %% TODO: Check last mod on target and referenced DTLs here..
%% erlydtl >= 0.8.1 does not use the extra indirection using the
%% compiler_options. Kept for backward compatibility with older
%% versions of erlydtl.
CompilerOptions = option(compiler_options, DtlOpts),
Sorted = proplists:unfold(
lists:sort(
[{out_dir, option(out_dir, DtlOpts)},
{doc_root, option(doc_root, DtlOpts)},
{custom_tags_dir, option(custom_tags_dir, DtlOpts)},
{compiler_options, CompilerOptions}
|CompilerOptions])),
%% ensure that doc_root and out_dir are defined, %% ensure that doc_root and out_dir are defined,
%% using defaults if necessary %% using defaults if necessary
Opts = lists:ukeymerge(1,
DtlOpts,
lists:sort(
[{out_dir, option(out_dir, DtlOpts)},
{doc_root, option(doc_root, DtlOpts)},
{custom_tags_dir, option(custom_tags_dir, DtlOpts)},
{compiler_options, option(compiler_options, DtlOpts)}])),
Opts = lists:ukeymerge(1, DtlOpts, Sorted),
?INFO("Compiling \"~s\" -> \"~s\" with options:~n ~s~n", ?INFO("Compiling \"~s\" -> \"~s\" with options:~n ~s~n",
[Source, Target, io_lib:format("~p", [Opts])]), [Source, Target, io_lib:format("~p", [Opts])]),
case erlydtl:compile(Source, case erlydtl:compile(Source,
@ -210,6 +217,8 @@ do_compile(Config, Source, Target, DtlOpts) ->
Opts) of Opts) of
ok -> ok ->
ok; ok;
{ok, _Mod} ->
ok;
{ok, _Mod, Ws} -> {ok, _Mod, Ws} ->
rebar_base_compiler:ok_tuple(Config, Source, Ws); rebar_base_compiler:ok_tuple(Config, Source, Ws);
{ok, _Mod, _Bin, Ws} -> {ok, _Mod, _Bin, Ws} ->
@ -220,7 +229,9 @@ do_compile(Config, Source, Target, DtlOpts) ->
rebar_base_compiler:error_tuple(Config, Source, [Error], [], Opts); rebar_base_compiler:error_tuple(Config, Source, [Error], [], Opts);
{error, Msg} -> {error, Msg} ->
Es = [{Source, [{erlydtl_parser, Msg}]}], Es = [{Source, [{erlydtl_parser, Msg}]}],
rebar_base_compiler:error_tuple(Config, Source, Es, [], Opts)
rebar_base_compiler:error_tuple(Config, Source, Es, [], Opts);
{error, Es, Ws} ->
rebar_base_compiler:error_tuple(Config, Source, Es, Ws, Opts)
end. end.
module_name(Target) -> module_name(Target) ->

Loading…
Cancel
Save