Module r3_hex_tarball

Functions for creating and unpacking Hex tarballs.

Description

Functions for creating and unpacking Hex tarballs.

Data Types

checksum()

checksum() = binary()

contents()

contents() = #{filename() => binary()}

filename()

filename() = string()

files()

files() = [{filename(), filename() | binary()}]

metadata()

metadata() = map()

tarball()

tarball() = binary()

Function Index

create/2
create/3 Creates a package tarball.
create_docs/1
create_docs/2 Creates a docs tarball.
format_checksum/1 Returns base16-encoded representation of checksum.
format_error/1 Converts an error reason term to a human-readable error message string.
unpack/2 Unpacks a package tarball.
unpack/3 Unpacks a package tarball.
unpack_docs/2
unpack_docs/3 Unpacks a documentation tarball.

Function Details

create/2

create(Metadata::metadata(), Files::files()) -> {ok, #{tarball => tarball(), outer_checksum => checksum(), inner_checksum => tarball()}} | {error, term()}

create/3

create(Metadata::metadata(), Files::files(), Config::r3_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).">>}],
  > r3_hex_tarball:create(Metadata, Files).
  {ok, #{tarball => <<86,69,...>>,
         outer_checksum => <<40,32,...>>,
         inner_checksum => <<178,12,...>>}}

create_docs/1

create_docs(Files::files()) -> {ok, tarball()} | {error, term()}

create_docs/2

create_docs(Files::files(), Config::r3_hex_core:config()) -> {ok, tarball()} | {error, term()}

Creates a docs tarball.

Examples:

  > Files = [{"doc/index.html", <<"Docs">>}],
  > r3_hex_tarball:create_docs(Files).
  {ok, <<86,69,...>>}

format_checksum/1

format_checksum(Checksum::checksum()) -> binary()

Returns base16-encoded representation of checksum.

format_error/1

format_error(X1::term()) -> string()

Converts an error reason term to a human-readable error message string.

unpack/2

unpack(Tarball::tarball(), Output::memory) -> {ok, #{outer_checksum => checksum(), inner_checksum => checksum(), metadata => metadata(), contents => contents()}} | {error, term()}

unpack(Tarball::tarball(), Output::filename()) -> {ok, #{outer_checksum => checksum(), inner_checksum => checksum(), metadata => metadata()}} | {error, term()}

Unpacks a package tarball.

See also: unpack/3.

unpack/3

unpack(Tarball::tarball(), Output::memory, Config::r3_hex_core:config()) -> {ok, #{outer_checksum => checksum(), inner_checksum => checksum(), metadata => metadata(), contents => contents()}} | {error, term()}

unpack(Tarball::tarball(), Output::filename(), Config::r3_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 r3_hex_repo:get_package(Config, Package).

Examples:

  > r3_hex_tarball:unpack(Tarball, memory).
  {ok,#{outer_checksum => <<...>>,
        contents => [{"src/foo.erl",<<"-module(foo).">>}],
        metadata => #{<<"name">> => <<"foo">>, ...}}}
 
  > r3_hex_tarball:unpack(Tarball, "path/to/unpack").
  {ok,#{outer_checksum => <<...>>,
        metadata => #{<<"name">> => <<"foo">>, ...}}}

unpack_docs/2

unpack_docs(Tarball::tarball(), Output::memory) -> {ok, contents()} | {error, term()}

unpack_docs(Tarball::tarball(), Output::filename()) -> ok | {error, term()}

unpack_docs/3

unpack_docs(Tarball::tarball(), Output::memory, Config::r3_hex_core:config()) -> {ok, contents()} | {error, term()}

unpack_docs(Tarball::tarball(), Output::filename(), Config::r3_hex_core:config()) -> ok | {error, term()}

Unpacks a documentation tarball.

Examples:

  > r3_hex_tarball:unpack_docs(Tarball, memory).
  {ok, [{"index.html", <<"<!doctype>">>}, ...]}
 
  > r3_hex_tarball:unpack_docs(Tarball, "path/to/unpack").
  ok


Generated by EDoc