blob: 36fba819a6a85d53e9fd9b49ddd9ba72c8ef9ac1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
%%% Copyright (c) 2014, NORDUnet A/S.
%%% See LICENSE for licensing information.
-module(atomic).
-export([replacefile/2, readfile/1]).
-spec replacefile(string(), binary()) -> ok.
replacefile(Path, Content) ->
TempName = util:tempfilename(Path),
util:write_tempfile_and_rename(Path, TempName, Content),
util:fsync([Path, filename:dirname(Path)]).
-spec readfile(string()) -> binary() | noentry.
readfile(Path) ->
case file:read_file(Path) of
{ok, Contents} ->
Contents;
{error, enoent} ->
noentry;
{error, Error} ->
util:exit_with_error(readfile, Error, "Error reading file")
end.
|