-
Notifications
You must be signed in to change notification settings - Fork 63
/
rebar.config.script
32 lines (31 loc) · 991 Bytes
/
rebar.config.script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
{_, ErlOpts} = lists:keyfind(erl_opts, 1, CONFIG).
Rel = try erlang:system_info(otp_release) of
Vsn ->
{match,[Maj]} = re:run(Vsn, "^R?([0-9]+)", [{capture,[1],list}]),
list_to_integer(Maj)
catch _:_ ->
"OLD"
end,
Macros = if Rel < 19 ->
[{d, 'OLD_TIME_UNITS'}];
true ->
[]
end,
CONFIG1 = lists:keystore(erl_opts, 1, CONFIG, {erl_opts, Macros ++ ErlOpts}),
IsRebar3 = erlang:function_exported(rebar3, main, 1),
case IsRebar3 of
true ->
CONFIG1;
false ->
URLs = [ {snappyer, "https://github.com/zmstone/snappyer"}
, {crc32cer, "https://github.com/zmstone/crc32cer"}
],
Rebar3Deps = proplists:get_value(deps, CONFIG1),
Rebar2Deps =
lists:map(
fun({Name, URL}) ->
Tag = proplists:get_value(Name, Rebar3Deps),
{Name, ".*", {git, URL, {tag, Tag}}}
end, URLs),
lists:keyreplace(deps, 1, CONFIG1, {deps, Rebar2Deps})
end.