-
Notifications
You must be signed in to change notification settings - Fork 0
/
rebar.config.script
41 lines (39 loc) · 1.32 KB
/
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
33
34
35
36
37
38
39
40
41
%% -*- erlang -*-
%%
%% Copyright (C) 2022 Mikael Pettersson
%%
%% Licensed under the Apache License, Version 2.0 (the "License");
%% you may not use this file except in compliance with the License.
%% You may obtain a copy of the License at
%%
%% http://www.apache.org/licenses/LICENSE-2.0
%%
%% Unless required by applicable law or agreed to in writing, software
%% distributed under the License is distributed on an "AS IS" BASIS,
%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
%% See the License for the specific language governing permissions and
%% limitations under the License.
CONFIG0 =
(fun() ->
case erlang:system_info(otp_release) of
VSN when VSN < "25" ->
io:format("OTP ~s: removing missing_return dialyzer option\n", [VSN]),
lists:keystore(dialyzer, 1, CONFIG, {dialyzer, [{warnings, [unknown]}]});
_ ->
CONFIG
end
end)(),
case os:cmd("git describe --dirty") of
"fatal: " ++ _ ->
CONFIG0;
Output ->
VSN = string:trim(Output),
Opts =
case lists:keyfind(erl_opts, 1, CONFIG0) of
false -> [];
{erl_opts, Opts0} ->
lists:filter(fun({d, 'VSN', _}) -> false; (_) -> true end, Opts0)
end,
NewOpts = [{d, 'VSN', VSN} | Opts],
lists:keystore(erl_opts, 1, CONFIG0, {erl_opts, NewOpts})
end.