Packmatic.Manifest.Entry (Packmatic v2.0.0)
View SourceRepresents a particular file that will go into package, which is sourced by reading from a file, downloading from an URI, etc.
The source attribute is a Source Entry (Packmatic.Source.entry/0), which will be dynamically
resolved at runtime using Packmatic.Source.build/1 by the Encoder, when it is time to start
reading from it.
The path attribute is the file name in the record; by default, it should be a relative path.
The timestamp attribute is a UTC DataTime which will be presented in both the normal way (DOS
timestamp) and the extended way.
The attributesattribute represents specific attributes (mode, UID, GID, etc) of the record;
the permissions of any file whose Entry does not have a specific attribute will be 0o644 (octal),
aka rw-r--r-- (owner read/write, others read only). For more information please see the type
Packmatic.Manifest.Entry.Attributes.entry/0.
The method attribute represents how a particular file should be compressed by the Encoder, and
are represented as name or {name, options}, for example:
:store:deflate{:deflate, level: :best_compression}, where the level is oft:zlib:zlevel/0
For compatibility reasons, only STORE and DEFLATE methods are supported initially; further compression methods such as Zstandard can be added in the future, but they must remain representable within the General Purpose bits within the File Headers.
Summary
Types
@type attributes() :: Packmatic.Manifest.Entry.Attributes.entry()
@type error() :: error_source() | error_path() | error_timestamp()
@type error_path() :: {:path, :missing}
@type error_source() :: {:source, :missing | :invalid}
@type error_timestamp() :: {:timestamp, :missing | :invalid}
@type method() :: :store | :deflate
@type path() :: Path.t()
@type proplist() :: [ {:source, source()} | {:path, path()} | {:timestamp, timestamp()} | {:attributes, attributes()} | {:method, method()}, ... ]
@type source() :: Packmatic.Source.entry()
@type timestamp() :: DateTime.t()