hex_erl_tar (hex_core v0.17.0)
View SourceSummary
Types
-type add_opt() :: dereference | verbose | {chunks, pos_integer()} | {atime, non_neg_integer()} | {mtime, non_neg_integer()} | {ctime, non_neg_integer()} | {mode, non_neg_integer()} | {uid, non_neg_integer()} | {gid, non_neg_integer()}.
-type create_opt() :: compressed | cooked | dereference | verbose.
-type descriptor_type() :: tar_descriptor() | reg_file_reader() | sparse_file_reader().
-type extract_opt() :: {cwd, string()} | {files, [name_in_archive()]} | {chunks, pos_integer()} | {max_size, pos_integer() | infinity} | compressed | cooked | memory | keep_old_files | verbose.
-type file_op() :: fun((write | close | read2 | position, {user_data(), iodata()} | user_data() | {user_data(), non_neg_integer()} | {user_data(), non_neg_integer()}) -> ok | eof | {ok, string() | binary()} | {ok, non_neg_integer()} | {error, term()}).
-type filelist() :: [file:filename() | {name_in_archive(), file:filename_all()}].
-type gid() :: non_neg_integer().
-type mode() :: non_neg_integer().
-type name_in_archive() :: string().
-type open_type() :: file:filename_all() | {binary, binary()} | {file, file:io_device()}.
-type reg_file_reader() :: #reg_file_reader{handle :: tar_descriptor(), num_bytes :: term(), pos :: term(), size :: term()}.
-type sparse_array() :: #sparse_array{entries :: [sparse_entry()], is_extended :: boolean(), max_entries :: non_neg_integer()}.
-type sparse_entry() :: #sparse_entry{offset :: non_neg_integer(), num_bytes :: non_neg_integer()}.
-type sparse_file_reader() :: #sparse_file_reader{handle :: tar_descriptor(), num_bytes :: term(), pos :: term(), size :: term(), sparse_map :: term()}.
-opaque tar_descriptor()
-type tar_entry() :: {Name :: name_in_archive(), Type :: typeflag(), Size :: non_neg_integer(), MTime :: tar_time(), Mode :: mode(), Uid :: uid(), Gid :: gid()}.
-type tar_header() :: #tar_header{name :: name_in_archive(), mode :: non_neg_integer(), uid :: non_neg_integer(), gid :: non_neg_integer(), size :: non_neg_integer(), mtime :: tar_time(), typeflag :: char(), linkname :: name_in_archive(), uname :: string(), gname :: string(), devmajor :: non_neg_integer(), devminor :: non_neg_integer(), atime :: tar_time(), ctime :: tar_time()}.
-type tar_time() :: non_neg_integer().
-type typeflag() :: regular | link | symlink | char | block | directory | fifo | reserved | unknown.
-type uid() :: non_neg_integer().
-type user_data() :: term().
Functions
-spec add(TarDescriptor, Name, Options) -> ok | {error, term()} when TarDescriptor :: tar_descriptor(), Name :: name_in_archive() | {name_in_archive(), file:filename_all()}, Options :: [add_opt()].
-spec add(TarDescriptor, Filename, NameInArchive, Options) -> ok | {error, term()} when TarDescriptor :: tar_descriptor(), Filename :: file:filename_all(), NameInArchive :: name_in_archive(), Options :: [add_opt()].
-spec close(TarDescriptor :: tar_descriptor()) -> ok | {error, term()}.
-spec create(file:filename_all(), filelist()) -> ok | {error, {string(), term()}}.
-spec create(file:filename_all(), filelist(), [create_opt()]) -> ok | {error, term()} | {error, {string(), term()}}.
-spec init(UserData :: user_data(), write | read, file_op()) -> {ok, tar_descriptor()} | {error, badarg}.
-spec open(Open :: open_type(), [write | compressed | cooked]) -> {ok, tar_descriptor()} | {error, term()}.
-spec t(file:filename()) -> ok | {error, term()}.
-spec table(Open :: open_type()) -> {ok, [name_in_archive()]} | {error, term()}.
-spec table(Open :: open_type(), [compressed | verbose | cooked]) -> {ok, [name_in_archive() | tar_entry()]} | {error, term()}.