aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.travis.yml2
-rw-r--r--Makefile5
-rw-r--r--src/rlx_dscv_util.erl29
-rw-r--r--src/rlx_prv_assembler.erl35
4 files changed, 37 insertions, 34 deletions
diff --git a/.travis.yml b/.travis.yml
index 9833c26..764fe9c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -13,7 +13,7 @@ otp_release:
- R14B04
- R14B03
- R14B02
-script: "make rebuild"
+script: "make get-rebar && make rebuild"
branches:
only:
- master
diff --git a/Makefile b/Makefile
index 4d94cc7..b7ee1e5 100644
--- a/Makefile
+++ b/Makefile
@@ -31,6 +31,11 @@ endif
REBAR=$(shell which rebar)
+# If building on travis, use the rebar in the current directory
+ifeq ($(TRAVIS),true)
+REBAR=$(CURDIR)/rebar
+endif
+
ifeq ($(REBAR),)
REBAR=$(CURDIR)/rebar
endif
diff --git a/src/rlx_dscv_util.erl b/src/rlx_dscv_util.erl
index 6cfea81..a4a265c 100644
--- a/src/rlx_dscv_util.erl
+++ b/src/rlx_dscv_util.erl
@@ -115,19 +115,24 @@ discover_real_symlink_dir(ProcessDir, File) ->
ok = file:set_cwd(File),
{ok, ActualRealDir} = file:get_cwd(),
ok = file:set_cwd(CurCwd),
- lists:prefix(iolist_to_list(filename:absname(ActualRealDir)),
- iolist_to_list(filename:absname(File))),
- case ProcessDir(File, directory) of
- {ok, Result, true} ->
- [{ok, Result} | recurse(ProcessDir, File)];
- {noresult, true} ->
- recurse(ProcessDir, File);
- {ok, Result, _} ->
- [{ok, Result}];
- {noresult, _} ->
+ case lists:prefix(iolist_to_list(filename:absname(ActualRealDir)),
+ iolist_to_list(filename:absname(File))) of
+ true ->
+ %% Ignore cycles
[];
- Err = {error, _} ->
- [Err]
+ false ->
+ case ProcessDir(File, directory) of
+ {ok, Result, true} ->
+ [{ok, Result} | recurse(ProcessDir, File)];
+ {noresult, true} ->
+ recurse(ProcessDir, File);
+ {ok, Result, _} ->
+ [{ok, Result}];
+ {noresult, _} ->
+ [];
+ Err = {error, _} ->
+ [Err]
+ end
end.
recurse(ProcessDir, File) ->
diff --git a/src/rlx_prv_assembler.erl b/src/rlx_prv_assembler.erl
index 19a8987..33be3e0 100644
--- a/src/rlx_prv_assembler.erl
+++ b/src/rlx_prv_assembler.erl
@@ -334,14 +334,15 @@ write_bin_file(State, Release, OutputDir, RelDir) ->
ok = file:write_file(BareRel, StartFile),
ok = file:change_mode(BareRel, 8#777)
end,
- copy_or_generate_vmargs_file(State, Release, OutputDir, RelDir),
- copy_or_generate_sys_config_file(State, Release, OutputDir, RelDir).
+ copy_or_generate_vmargs_file(State, Release, RelDir),
+ copy_or_generate_sys_config_file(State, RelDir),
+ include_erts(State, Release, OutputDir, RelDir).
%% @doc copy vm.args or generate one to releases/VSN/vm.args
--spec copy_or_generate_vmargs_file(rlx_state:t(), rlx_release:t(), file:name(), file:name()) ->
+-spec copy_or_generate_vmargs_file(rlx_state:t(), rlx_release:t(), file:name()) ->
{ok, rlx_state:t()} | relx:error().
-copy_or_generate_vmargs_file(State, Release, OutputDir, RelDir) ->
+copy_or_generate_vmargs_file(State, Release, RelDir) ->
RelVmargsPath = filename:join([RelDir, "vm.args"]),
case rlx_state:vm_args(State) of
undefined ->
@@ -352,46 +353,38 @@ copy_or_generate_vmargs_file(State, Release, OutputDir, RelDir) ->
false ->
?RLX_ERROR({vmargs_does_not_exist, ArgsPath});
true ->
- copy_or_symlink_config_file(State, Release, OutputDir, RelDir,
- ArgsPath, RelVmargsPath)
+ copy_or_symlink_config_file(State, ArgsPath, RelVmargsPath)
end
end.
%% @doc copy config/sys.config or generate one to releases/VSN/sys.config
--spec copy_or_generate_sys_config_file(rlx_state:t(), rlx_release:t(),
- file:name(), file:name()) ->
+-spec copy_or_generate_sys_config_file(rlx_state:t(), file:name()) ->
{ok, rlx_state:t()} | relx:error().
-copy_or_generate_sys_config_file(State, Release, OutputDir, RelDir) ->
+copy_or_generate_sys_config_file(State, RelDir) ->
RelSysConfPath = filename:join([RelDir, "sys.config"]),
case rlx_state:sys_config(State) of
undefined ->
- unless_exists_write_default(RelSysConfPath, sys_config_file()),
- include_erts(State, Release, OutputDir, RelDir);
+ unless_exists_write_default(RelSysConfPath, sys_config_file());
ConfigPath ->
case filelib:is_regular(ConfigPath) of
false ->
?RLX_ERROR({config_does_not_exist, ConfigPath});
true ->
- copy_or_symlink_config_file(State, Release, OutputDir, RelDir,
- ConfigPath, RelSysConfPath)
+ copy_or_symlink_config_file(State, ConfigPath, RelSysConfPath)
end
end.
%% @doc copy config/sys.config or generate one to releases/VSN/sys.config
--spec copy_or_symlink_config_file(rlx_state:t(), rlx_release:t(),
- file:name(), file:name(),
- file:name(), file:name()) ->
- {ok, rlx_state:t()} | relx:error().
-copy_or_symlink_config_file(State, Release, OutputDir, RelDir,
- ConfigPath, RelConfPath) ->
+-spec copy_or_symlink_config_file(rlx_state:t(), file:name(), file:name()) ->
+ ok.
+copy_or_symlink_config_file(State, ConfigPath, RelConfPath) ->
ensure_not_exist(RelConfPath),
case rlx_state:dev_mode(State) of
true ->
ok = file:make_symlink(ConfigPath, RelConfPath);
_ ->
ok = ec_file:copy(ConfigPath, RelConfPath)
- end,
- include_erts(State, Release, OutputDir, RelDir).
+ end.
%% @doc Optionally add erts directory to release, if defined.
-spec include_erts(rlx_state:t(), rlx_release:t(), file:name(), file:name()) ->