From 4a5114b79fcb7e2a7d7b7c52c2bb5ab79d4c80fe Mon Sep 17 00:00:00 2001 From: Joseph Wayne Norton Date: Sat, 15 Oct 2011 22:45:26 +0900 Subject: [PATCH] Setup code path prior to calling edoc Setup code path prior to calling edoc so that edown, asciiedoc, and the like can work properly when generating their own documentation. --- src/rebar_edoc.erl | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/rebar_edoc.erl b/src/rebar_edoc.erl index ce5458a..27e0015 100644 --- a/src/rebar_edoc.erl +++ b/src/rebar_edoc.erl @@ -48,7 +48,26 @@ %% @doc Generate Erlang program documentation. -spec doc(Config::rebar_config:config(), File::file:filename()) -> ok. doc(Config, File) -> + %% Save code path + CodePath = setup_code_path(), {ok, AppName, _AppData} = rebar_app_utils:load_app_file(File), EDocOpts = rebar_config:get(Config, edoc_opts, []), ok = edoc:application(AppName, ".", EDocOpts), + %% Restore code path + true = code:set_path(CodePath), ok. + +%% =================================================================== +%% Internal functions +%% =================================================================== + +setup_code_path() -> + %% Setup code path prior to calling edoc so that edown, asciiedoc, + %% and the like can work properly when generating their own + %% documentation. + CodePath = code:get_path(), + true = code:add_patha(ebin_dir()), + CodePath. + +ebin_dir() -> + filename:join(rebar_utils:get_cwd(), "ebin").