diff options
author | Matthias Radestock <matthias@lshift.net> | 2009-08-20 00:05:38 +0100 |
---|---|---|
committer | Matthias Radestock <matthias@lshift.net> | 2009-08-20 00:05:38 +0100 |
commit | 41f711e86d18dc27c3d15bfef8152e13b26dde89 (patch) | |
tree | a2f45ac0c431e35357d72c547d80c73d74a3e8fc | |
parent | dfd2fe94b67a8d5f4bc6da342e31cb9c4a125796 (diff) | |
download | rabbitmq-server-41f711e86d18dc27c3d15bfef8152e13b26dde89.tar.gz |
introduce helper functions for reading/writing files containing Erlang terms
-rw-r--r-- | src/rabbit_misc.erl | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/rabbit_misc.erl b/src/rabbit_misc.erl index 9ca2a393..95a274e3 100644 --- a/src/rabbit_misc.erl +++ b/src/rabbit_misc.erl @@ -50,6 +50,7 @@ -export([intersperse/2, upmap/2, map_in_order/2]). -export([table_foreach/2]). -export([dirty_read_all/1, dirty_foreach_key/2, dirty_dump_log/1]). +-export([read_term_file/1, write_term_file/2]). -export([append_file/2, ensure_parent_dirs_exist/1]). -export([format_stderr/2]). -export([start_applications/1, stop_applications/1]). @@ -114,6 +115,8 @@ -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(ensure_parent_dirs_exist/1 :: (string()) -> 'ok'). -spec(format_stderr/2 :: (string(), [any()]) -> 'ok'). @@ -381,6 +384,12 @@ dirty_dump_log1(LH, {K, Terms, BadBytes}) -> dirty_dump_log1(LH, disk_log:chunk(LH, K)). +read_term_file(File) -> file:consult(File). + +write_term_file(File, Terms) -> + file:write_file(File, list_to_binary([io_lib:format("~w.~n", [Term]) || + Term <- Terms])). + append_file(File, Suffix) -> case file:read_file_info(File) of {ok, FInfo} -> append_file(File, FInfo#file_info.size, Suffix); |