Tar.HeaderSourceProcess and create tar file headers.
tar format assumptions. Default is V7 (for compatibility with versions of ocaml-tar before this type was introduced).
Default compatibility if ?level is omitted. Defaults to V7.
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 ->
tmake 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.
Length of a header block.
A blank header block (two of these in series mark the end of the tar).
For debugging: pretty-print a string as hex.
Thrown when unmarshalling a header if the checksums don't match.
Thrown if we detect the end of the tar (at least two zero blocks in sequence).
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.
Marshal a header block, computing and inserting the checksum.
Compute the amount of zero-padding required to round up the file size to a whole number of blocks.