mirror of
https://github.com/correl/rebar.git
synced 2024-12-18 03:00:17 +00:00
Simplify temp dir creation
This commit is contained in:
parent
1e980859e2
commit
e65455b6ef
1 changed files with 7 additions and 20 deletions
|
@ -95,32 +95,19 @@ clean(Config, AppFile) ->
|
||||||
%% ===================================================================
|
%% ===================================================================
|
||||||
|
|
||||||
make_temp_dir(AppName) ->
|
make_temp_dir(AppName) ->
|
||||||
case temp_name(AppName ++ ".") of
|
TempDir = temp_name(AppName ++ "."),
|
||||||
{ok, TempDir} ->
|
case file:make_dir(TempDir) of
|
||||||
case file:make_dir(TempDir) of
|
ok ->
|
||||||
ok ->
|
?CONSOLE("TempDir: ~p~n", [TempDir]),
|
||||||
TempDir;
|
TempDir;
|
||||||
Error ->
|
|
||||||
?ABORT("Failed to create temporary directory: ~p~n",
|
|
||||||
[Error])
|
|
||||||
end;
|
|
||||||
Error ->
|
Error ->
|
||||||
?ABORT("Failed to create temporary directory: ~p~n",
|
?ABORT("Failed to create temporary directory: ~p~n",
|
||||||
[Error])
|
[Error])
|
||||||
end.
|
end.
|
||||||
|
|
||||||
temp_name(Prefix) ->
|
temp_name(Prefix) ->
|
||||||
temp_name(Prefix, 5).
|
|
||||||
|
|
||||||
temp_name(_Prefix, 0) ->
|
|
||||||
{error, eexist};
|
|
||||||
temp_name(Prefix, N) ->
|
|
||||||
Hash = erlang:phash2(make_ref()),
|
Hash = erlang:phash2(make_ref()),
|
||||||
Name = Prefix ++ integer_to_list(Hash),
|
Prefix ++ integer_to_list(Hash).
|
||||||
case filelib:is_file(Name) of
|
|
||||||
false -> {ok, Name};
|
|
||||||
true -> temp_name(Prefix, N-1)
|
|
||||||
end.
|
|
||||||
|
|
||||||
copy_files(Config, AppName, Temp) ->
|
copy_files(Config, AppName, Temp) ->
|
||||||
BaseEbinDir = filename:join(AppName, "ebin"),
|
BaseEbinDir = filename:join(AppName, "ebin"),
|
||||||
|
@ -157,7 +144,7 @@ get_app_ebin_dirs([App | Rest], Acc) ->
|
||||||
"~p escript_incl_apps.", [App]);
|
"~p escript_incl_apps.", [App]);
|
||||||
Path ->
|
Path ->
|
||||||
%% TODO: shouldn't we also include .app files? escript
|
%% TODO: shouldn't we also include .app files? escript
|
||||||
%% supports multiple app files in one ebin/
|
%% should support multiple app files in one ebin/
|
||||||
Acc2 = filename:join(Path, "*.beam"),
|
Acc2 = filename:join(Path, "*.beam"),
|
||||||
get_app_ebin_dirs(Rest, [Acc2|Acc])
|
get_app_ebin_dirs(Rest, [Acc2|Acc])
|
||||||
end.
|
end.
|
||||||
|
|
Loading…
Reference in a new issue