Skip to content

Commit 547eed9

Browse files
author
Steve Powell
committed
Merge bug24387 into default
2 parents f3ea346 + ef7201b commit 547eed9

File tree

2 files changed

+11
-33
lines changed

2 files changed

+11
-33
lines changed

src/rabbit_misc.erl

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -749,7 +749,7 @@ recursive_delete(Files) ->
749749
end, ok, Files).
750750

751751
recursive_delete1(Path) ->
752-
case filelib:is_dir(Path) of
752+
case filelib:is_dir(Path) and not(is_symlink(Path)) of
753753
false -> case file:delete(Path) of
754754
ok -> ok;
755755
{error, enoent} -> ok; %% Path doesn't exist anyway
@@ -777,6 +777,12 @@ recursive_delete1(Path) ->
777777
end
778778
end.
779779

780+
is_symlink(Name) ->
781+
case file:read_link(Name) of
782+
{ok, _} -> true;
783+
_ -> false
784+
end.
785+
780786
recursive_copy(Src, Dest) ->
781787
case filelib:is_dir(Src) of
782788
false -> case file:copy(Src, Dest) of

src/rabbit_prelaunch.erl

Lines changed: 4 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -136,38 +136,10 @@ determine_version(App) ->
136136
{App, Vsn}.
137137

138138
delete_recursively(Fn) ->
139-
case filelib:is_dir(Fn) and not(is_symlink(Fn)) of
140-
true ->
141-
case file:list_dir(Fn) of
142-
{ok, Files} ->
143-
case lists:foldl(fun ( Fn1, ok) -> delete_recursively(
144-
Fn ++ "/" ++ Fn1);
145-
(_Fn1, Err) -> Err
146-
end, ok, Files) of
147-
ok -> case file:del_dir(Fn) of
148-
ok -> ok;
149-
{error, E} -> {error,
150-
{cannot_delete, Fn, E}}
151-
end;
152-
Err -> Err
153-
end;
154-
{error, E} ->
155-
{error, {cannot_list_files, Fn, E}}
156-
end;
157-
false ->
158-
case filelib:is_file(Fn) of
159-
true -> case file:delete(Fn) of
160-
ok -> ok;
161-
{error, E} -> {error, {cannot_delete, Fn, E}}
162-
end;
163-
false -> ok
164-
end
165-
end.
166-
167-
is_symlink(Name) ->
168-
case file:read_link(Name) of
169-
{ok, _} -> true;
170-
_ -> false
139+
case rabbit_misc:recursive_delete([Fn]) of
140+
ok -> ok;
141+
{error, {Path, E}} -> {error, {cannot_delete, Path, E}};
142+
Error -> Error
171143
end.
172144

173145
unpack_ez_plugins(SrcDir, DestDir) ->

0 commit comments

Comments
 (0)