diff options
| author | Matthias Radestock <matthias@lshift.net> | 2010-04-12 15:37:46 +0100 |
|---|---|---|
| committer | Matthias Radestock <matthias@lshift.net> | 2010-04-12 15:37:46 +0100 |
| commit | c44b5d55def44fb58a5cc432d46451218a307639 (patch) | |
| tree | 84a6fafbf62a1b37ad61533dfc2ca6d17ea0d889 | |
| parent | f14a729bad712c784dfefa39b48221793467e0e6 (diff) | |
| parent | d5babd41f6b04efca189c6fdc14776cc46b584e1 (diff) | |
| download | rabbitmq-server-git-c44b5d55def44fb58a5cc432d46451218a307639.tar.gz | |
merge default into bug21673
| -rw-r--r-- | src/rabbit_dialyzer.erl | 6 | ||||
| -rw-r--r-- | src/rabbit_misc.erl | 75 | ||||
| -rw-r--r-- | src/rabbit_mnesia.erl | 4 |
3 files changed, 41 insertions, 44 deletions
diff --git a/src/rabbit_dialyzer.erl b/src/rabbit_dialyzer.erl index 078cf620f4..f19e8d025a 100644 --- a/src/rabbit_dialyzer.erl +++ b/src/rabbit_dialyzer.erl @@ -38,9 +38,9 @@ -ifdef(use_specs). --spec(create_basic_plt/1 :: (string()) -> 'ok'). --spec(add_to_plt/2 :: (string(), string()) -> 'ok'). --spec(dialyze_files/2 :: (string(), string()) -> 'ok'). +-spec(create_basic_plt/1 :: (file_path()) -> 'ok'). +-spec(add_to_plt/2 :: (file_path(), string()) -> 'ok'). +-spec(dialyze_files/2 :: (file_path(), string()) -> 'ok'). -spec(halt_with_code/1 :: (atom()) -> no_return()). -endif. diff --git a/src/rabbit_misc.erl b/src/rabbit_misc.erl index d31ca65336..028b0d73ea 100644 --- a/src/rabbit_misc.erl +++ b/src/rabbit_misc.erl @@ -98,8 +98,8 @@ -spec(rs/1 :: (r(atom())) -> string()). -spec(enable_cover/0 :: () -> ok_or_error()). -spec(report_cover/0 :: () -> 'ok'). --spec(enable_cover/1 :: (string()) -> ok_or_error()). --spec(report_cover/1 :: (string()) -> 'ok'). +-spec(enable_cover/1 :: (file_path()) -> ok_or_error()). +-spec(report_cover/1 :: (file_path()) -> 'ok'). -spec(throw_on_error/2 :: (atom(), thunk({error, any()} | {ok, A} | A)) -> A). -spec(with_exit_handler/2 :: (thunk(A), thunk(A)) -> A). @@ -120,10 +120,10 @@ -spec(dirty_read_all/1 :: (atom()) -> [any()]). -spec(dirty_foreach_key/2 :: (fun ((any()) -> any()), atom()) -> 'ok' | 'aborted'). --spec(dirty_dump_log/1 :: (string()) -> ok_or_error()). --spec(read_term_file/1 :: (string()) -> {'ok', [any()]} | {'error', any()}). --spec(write_term_file/2 :: (string(), [any()]) -> ok_or_error()). --spec(append_file/2 :: (string(), string()) -> ok_or_error()). +-spec(dirty_dump_log/1 :: (file_path()) -> ok_or_error()). +-spec(read_term_file/1 :: (file_path()) -> {'ok', [any()]} | {'error', any()}). +-spec(write_term_file/2 :: (file_path(), [any()]) -> ok_or_error()). +-spec(append_file/2 :: (file_path(), string()) -> ok_or_error()). -spec(ensure_parent_dirs_exist/1 :: (string()) -> 'ok'). -spec(format_stderr/2 :: (string(), [any()]) -> 'ok'). -spec(start_applications/1 :: ([atom()]) -> 'ok'). @@ -137,7 +137,8 @@ -spec(version_compare/2 :: (string(), string()) -> 'lt' | 'eq' | 'gt'). -spec(version_compare/3 :: (string(), string(), ('lt' | 'lte' | 'eq' | 'gte' | 'gt')) -> boolean()). --spec(recursive_delete/1 :: ([string()]) -> 'ok' | {'error', {string(), any()}}). +-spec(recursive_delete/1 :: ([file_path()]) -> + 'ok' | {'error', {file_path(), any()}}). -spec(dict_cons/3 :: (any(), any(), dict()) -> dict()). -spec(unlink_and_capture_exit/1 :: (pid()) -> 'ok'). @@ -610,41 +611,37 @@ version_compare(A, B) -> end. recursive_delete(Files) -> - lists:foldl( - fun (Path, ok ) -> recursive_delete1(Path); - (_Path, {error, _Err} = Error) -> Error - end, ok, Files). + lists:foldl(fun (Path, ok ) -> recursive_delete1(Path); + (_Path, {error, _Err} = Error) -> Error + end, ok, Files). recursive_delete1(Path) -> case filelib:is_dir(Path) of - false -> - case file:delete(Path) of - ok -> ok; - %% Path doesn't exist anyway - {error, enoent} -> ok; - {error, Err} -> {error, {Path, Err}} - end; - true -> - case file:list_dir(Path) of - {ok, FileNames} -> - case lists:foldl( - fun (FileName, ok) -> - recursive_delete1( - filename:join(Path, FileName)); - (_FileName, Error) -> - Error - end, ok, FileNames) of - ok -> - case file:del_dir(Path) of - ok -> ok; - {error, Err} -> {error, {Path, Err}} - end; - {error, _Err} = Error -> - Error - end; - {error, Err} -> - {error, {Path, Err}} - end + false -> case file:delete(Path) of + ok -> ok; + {error, enoent} -> ok; %% Path doesn't exist anyway + {error, Err} -> {error, {Path, Err}} + end; + true -> case file:list_dir(Path) of + {ok, FileNames} -> + case lists:foldl( + fun (FileName, ok) -> + recursive_delete1( + filename:join(Path, FileName)); + (_FileName, Error) -> + Error + end, ok, FileNames) of + ok -> + case file:del_dir(Path) of + ok -> ok; + {error, Err} -> {error, {Path, Err}} + end; + {error, _Err} = Error -> + Error + end; + {error, Err} -> + {error, {Path, Err}} + end end. dict_cons(Key, Value, Dict) -> diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl index e11f27aff0..55a6761d2d 100644 --- a/src/rabbit_mnesia.erl +++ b/src/rabbit_mnesia.erl @@ -48,7 +48,7 @@ -ifdef(use_specs). -spec(status/0 :: () -> [{'nodes' | 'running_nodes', [erlang_node()]}]). --spec(dir/0 :: () -> string()). +-spec(dir/0 :: () -> file_path()). -spec(ensure_mnesia_dir/0 :: () -> 'ok'). -spec(init/0 :: () -> 'ok'). -spec(is_db_empty/0 :: () -> boolean()). @@ -424,7 +424,7 @@ reset(Force) -> cannot_delete_schema) end, ok = delete_cluster_nodes_config(), - %% remove persistet messages and any other garbage we find + %% remove persisted messages and any other garbage we find ok = rabbit_misc:recursive_delete(filelib:wildcard(dir() ++ "/*")), ok. |
