hex_tarball (hex_core v0.8.4) View Source
Link to this section Summary
Link to this section Types
Specs
checksum() :: binary().
Specs
contents() :: #{filename() => binary()}.
Specs
filename() :: string().
Specs
Specs
metadata() :: map().
Specs
tarball() :: binary().
Link to this section Functions
Specs
Specs
create(metadata(), files(), hex_core:config()) -> {ok, #{tarball => tarball(), outer_checksum => checksum(), inner_checksum => tarball()}} | {error, term()}.
Creates a package tarball.
Returns the binary of the tarball the "inner checksum" and "outer checksum". The inner checksum is deprecated in favor of the outer checksum.
Examples:
> Metadata = #{<<"name">> => <<"foo">>, <<"version">> => <<"1.0.0">>},
> Files = [{"src/foo.erl", <<"-module(foo).">>}],
> hex_tarball:create(Metadata, Files).
{ok, #{tarball => <<86,69,...>>,
outer_checksum => <<40,32,...>>,
inner_checksum => <<178,12,...>>}}
Specs
Specs
create_docs(files(), hex_core:config()) -> {ok, tarball()} | {error, term()}.
Creates a docs tarball.
Examples:
> Files = [{"doc/index.html", <<"Docs">>}],
> hex_tarball:create_docs(Files).
{ok, <<86,69,...>>}
Specs
format_checksum(checksum()) -> binary().
Specs
format_error(term()) -> string().
Specs
unpack(tarball(), memory) -> {ok, #{outer_checksum => checksum(), inner_checksum => checksum(), metadata => metadata(), contents => contents()}} | {error, term()}; (tarball(), filename()) -> {ok, #{outer_checksum => checksum(), inner_checksum => checksum(), metadata => metadata()}} | {error, term()}.
See also: unpack/3.
Specs
unpack(tarball(), memory, hex_core:config()) -> {ok, #{outer_checksum => checksum(), inner_checksum => checksum(), metadata => metadata(), contents => contents()}} | {error, term()}; (tarball(), filename(), hex_core:config()) -> {ok, #{outer_checksum => checksum(), inner_checksum => checksum(), metadata => metadata()}} | {error, term()}.
Unpacks a package tarball.
Remember to verify the outer tarball checksum against the registry checksum returned from hex_repo:get_package(Config, Package)
.
Examples:
> hex_tarball:unpack(Tarball, memory).
{ok,#{outer_checksum => <<...>>,
contents => [{"src/foo.erl",<<"-module(foo).">>}],
metadata => #{<<"name">> => <<"foo">>, ...}}}
> hex_tarball:unpack(Tarball, "path/to/unpack").
{ok,#{outer_checksum => <<...>>,
metadata => #{<<"name">> => <<"foo">>, ...}}}
Specs
Specs
unpack_docs(tarball(), memory, hex_core:config()) -> {ok, contents()} | {error, term()}; (tarball(), filename(), hex_core:config()) -> ok | {error, term()}.
Unpacks a documentation tarball.
Examples:
> hex_tarball:unpack_docs(Tarball, memory).
{ok, [{"index.html", <<"<!doctype>">>}, ...]}
> hex_tarball:unpack_docs(Tarball, "path/to/unpack").
ok