This commit is contained in:
Craig Everett 2019-12-18 21:49:21 +09:00
parent a2fb8a57ce
commit f40d8a940a

View File

@ -21,7 +21,7 @@
force_dir/1, mktemp_dir/1, random_string/0,
list_realms/0, realm_exists/1,
get_prime/1,
read_project_meta/0, read_project_meta/1, read_package_meta/1,
read_project_meta/0, read_project_meta/1,
write_project_meta/1, write_project_meta/2,
write_terms/2, exec_shell/1,
valid_lower0_9/1, valid_label/1, valid_version/1,
@ -217,7 +217,7 @@ read_project_meta() ->
-spec read_project_meta(Dir) -> Result
when Dir :: file:filename(),
Result :: {ok, zx:package_meta()}
Result :: {ok, zx_zsp:meta()}
| {error, file:posix()}
| {error, file:posix(), non_neg_integer()}.
%% @private
@ -226,8 +226,9 @@ read_project_meta() ->
read_project_meta(Dir) ->
Path = filename:join(Dir, "zomp.meta"),
case file:consult(Path) of
{ok, Meta} ->
{ok, maps:from_list(Meta)};
{ok, Data} ->
Meta = maps:merge(zx_zsp:new_meta(), maps:from_list(Meta)),
{ok, Meta};
{error, enoent} ->
{error, "No project zomp.meta file. Wrong directory? Not initialized?", 2};
Error ->
@ -236,17 +237,8 @@ read_project_meta(Dir) ->
end.
-spec read_package_meta(PackageID) -> Result
when PackageID :: zx:package_id(),
Result :: {ok, zx:package_meta()}
| {error, file:posix()}.
read_package_meta(PackageID) ->
read_project_meta(path(lib, PackageID)).
-spec write_project_meta(Meta) -> Result
when Meta :: zx:package_meta(),
when Meta :: zx_zsp:meta(),
Result :: ok
| {error, Reason},
Reason :: badarg
@ -262,14 +254,15 @@ write_project_meta(Meta) ->
-spec write_project_meta(Dir, Meta) -> ok
when Dir :: file:filename(),
Meta :: zx:package_meta().
Meta :: zx_zsp:meta().
%% @private
%% Write the contents of the provided meta structure (a map these days) as a list of
%% Erlang K/V terms.
write_project_meta(Dir, Meta) ->
Path = filename:join(Dir, "zomp.meta"),
write_terms(Path, maps:to_list(Meta)).
Data = maps:to_list(maps:merge(zx_zsp:new_meta(), Meta)),
write_terms(Path, Data).
-spec write_terms(Filename, Terms) -> Result