Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
Process and create tar file headers.
tar format assumptions. Default is V7
(for compatibility with versions of ocaml-tar before this type was introduced).
val compatibility_level : compatibility Stdlib.ref
Default compatibility if ?level
is omitted. Defaults to V7
.
module Link : sig ... end
module Extended : sig ... end
type t = {
file_name : string;
file_mode : int;
user_id : int;
group_id : int;
file_size : int64;
mod_time : int64;
link_indicator : Link.t;
link_name : string;
uname : string;
gname : string;
devmajor : int;
devminor : int;
extended : Extended.t option;
}
Represents a standard archive (note checksum not stored).
Helper function to make a simple header.
val make :
?file_mode:int ->
?user_id:int ->
?group_id:int ->
?mod_time:int64 ->
?link_indicator:Link.t ->
?link_name:string ->
?uname:string ->
?gname:string ->
?devmajor:int ->
?devminor:int ->
string ->
int64 ->
t
make file_name file_size
creates a simple header. file_mode
defaults to 0o400
, user_id
, group_id
default to 0
, mod_time
defaults to 0L
(epoch), link_indicator
defaults to Normal
, link_name
, uname
and gname
default to ""
, and devmajor
and devminor
default to 0
.
val to_detailed_string : t -> string
Pretty-print the header record.
Thrown if we detect the end of the tar (at least two zero blocks in sequence).
val unmarshal :
?level:compatibility ->
?extended:Extended.t ->
Cstruct.t ->
t option
Unmarshal a header block, returning None
if it's all zeroes. This header block may be preceded by an ?extended
block which will override some fields.
val marshal : ?level:compatibility -> Cstruct.t -> t -> unit
Marshal a header block, computing and inserting the checksum.
val compute_zero_padding_length : t -> int
Compute the amount of zero-padding required to round up the file size to a whole number of blocks.
val zero_padding : t -> Cstruct.t
Return the required zero-padding as a string.
val to_sectors : t -> int64
to_sectors t
is the number of sectors occupied by the data.