summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rebar_erlc_compiler.erl12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/rebar_erlc_compiler.erl b/src/rebar_erlc_compiler.erl
index 8b63321..335283d 100644
--- a/src/rebar_erlc_compiler.erl
+++ b/src/rebar_erlc_compiler.erl
@@ -87,15 +87,19 @@ compile(Config, _AppFile) ->
Config, yrl_first_files, [])),
"src", ".yrl", "src", ".erl",
fun compile_yrl/3),
- doterl_compile(Config, "ebin"),
rebar_base_compiler:run(Config,
check_files(rebar_config:get_local(
Config, mib_first_files, [])),
"mibs", ".mib", "priv/mibs", ".bin",
- fun compile_mib/3).
+ fun compile_mib/3),
+ doterl_compile(Config, "ebin").
-spec clean(Config::rebar_config:config(), AppFile::file:filename()) -> 'ok'.
clean(_Config, _AppFile) ->
+ MibFiles = rebar_utils:find_files("mibs", "^.*\\.mib\$"),
+ MIBs = [filename:rootname(filename:basename(MIB)) || MIB <- MibFiles],
+ rebar_file_utils:delete_each(
+ [filename:join(["include",MIB++".hrl"]) || MIB <- MIBs]),
lists:foreach(fun(F) -> ok = rebar_file_utils:rm_rf(F) end,
["ebin/*.beam", "priv/mibs/*.bin"]),
@@ -270,6 +274,10 @@ compile_mib(Source, Target, Config) ->
rebar_config:get(Config, mib_opts, []),
case snmpc:compile(Source, Opts) of
{ok, _} ->
+ Mib = filename:rootname(Target),
+ ok = snmpc:mib_to_hrl(Mib),
+ Hrl_filename = Mib ++ ".hrl",
+ rebar_file_utils:mv(Hrl_filename,"include"),
ok;
{error, compilation_failed} ->
?FAIL