hex_tarball (hex_core v0.7.1) View Source
Link to this section Summary
Functions
Creates a package tarball.
Creates a docs tarball.
Returns base16-encoded representation of checksum.
Converts an error reason term to a human-readable error message string.
Unpacks a package tarball.
Unpacks a documentation tarball.
Link to this section Types
Link to this section Functions
Specs
create(metadata(), files()) :: {:ok, %{ optional(:tarball) => tarball(), optional(:outer_checksum) => checksum(), optional(:inner_checksum) => tarball() }} | {:error, term()}
Specs
create(metadata(), files(), :hex_core.config()) :: {:ok, %{ optional(:tarball) => tarball(), optional(:outer_checksum) => checksum(), optional(: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
create_docs(files()) :: {:ok, tarball()}
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, %{ optional(:outer_checksum) => checksum(), optional(:inner_checksum) => checksum(), optional(:metadata) => metadata(), optional(:contents) => contents() }} | {:error, term()}
unpack(tarball(), filename()) :: {:ok, %{ optional(:outer_checksum) => checksum(), optional(:inner_checksum) => checksum(), optional(:metadata) => metadata() }} | {:error, term()}
Specs
unpack(tarball(), :memory, :hex_core.config()) :: {:ok, %{ optional(:outer_checksum) => checksum(), optional(:inner_checksum) => checksum(), optional(:metadata) => metadata(), optional(:contents) => contents() }} | {:error, term()}
unpack(tarball(), filename(), :hex_core.config()) :: {:ok, %{ optional(:outer_checksum) => checksum(), optional(:inner_checksum) => checksum(), optional(: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()}
unpack_docs(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