diff options
Diffstat (limited to 'src/rebar_upgrade.erl')
-rw-r--r-- | src/rebar_upgrade.erl | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/src/rebar_upgrade.erl b/src/rebar_upgrade.erl index d18603c..3a38a08 100644 --- a/src/rebar_upgrade.erl +++ b/src/rebar_upgrade.erl @@ -87,7 +87,8 @@ info(help, 'generate-upgrade') -> ?CONSOLE("Build an upgrade package.~n" "~n" "Valid command line options:~n" - " previous_release=path~n", + " previous_release=path~n" + " target_dir=target_dir (optional)~n", []). run_checks(Config, OldVerPath, ReltoolConfig) -> @@ -97,10 +98,7 @@ run_checks(Config, OldVerPath, ReltoolConfig) -> {Name, Ver} = rebar_rel_utils:get_reltool_release_info(ReltoolConfig), - NewVerPath = - filename:join( - [rebar_rel_utils:get_target_parent_dir(Config, ReltoolConfig), - Name]), + NewVerPath = rebar_rel_utils:get_target_dir(Config, ReltoolConfig), true = rebar_utils:prop_check(filelib:is_dir(NewVerPath), "Release directory doesn't exist (~p)~n", [NewVerPath]), @@ -184,13 +182,24 @@ boot_files(TargetDir, Ver, Name) -> filename:join([TargetDir, "releases", Ver, "start_clean.boot"]), filename:join([".", ?TMP, "releases", Ver, "start_clean.boot"])), - {ok, _} = file:copy( - filename:join([TargetDir, "releases", Ver, "sys.config"]), - filename:join([".", ?TMP, "releases", Ver, "sys.config"])), - - {ok, _} = file:copy( - filename:join([TargetDir, "releases", Ver, "vm.args"]), - filename:join([".", ?TMP, "releases", Ver, "vm.args"])). + SysConfig = filename:join([TargetDir, "releases", Ver, "sys.config"]), + _ = case filelib:is_regular(SysConfig) of + true -> + {ok, _} = file:copy( + SysConfig, + filename:join([".", ?TMP, "releases", Ver, + "sys.config"])); + false -> ok + end, + + VmArgs = filename:join([TargetDir, "releases", Ver, "vm.args"]), + case filelib:is_regular(VmArgs) of + true -> + {ok, _} = file:copy( + VmArgs, + filename:join([".", ?TMP, "releases", Ver, "vm.args"])); + false -> {ok, 0} + end. make_tar(NameVer, NewVer, NewName) -> Filename = NameVer ++ ".tar.gz", |