TAR_UTILS - ntruessel/etar GitHub Wiki

TAR_UTILS provides various utility features. This page only mentions the ones that a user might need to implement a custom ARCHIVER or UNARCHIVER

needed_blocks

needed_blocks (n: NATURAL_64): NATURAL_64

Indicates how many blocks are required to store n bytes.

pad_block

pad_block (p: MANAGED_POINTER; a_pos, n: INTEGER)

Pad n '%U' characters to p, starting at a_pos.

file_set_metadata

file_set_metadata (a_file: FILE; a_header: TAR_HEADER)

Set all metadata of a_file that a_header contains (uid, gid, permissions/mode, mtime). Metatdata that causes errors is ignored.

file_set_mode

file_set_mode (a_file: FILE; a_mode: INTEGER)

Set mode of a_file. Silently exits in case of an error.

file_set_mtime

file_set_mtime (a_file: FILE; a_mtime: INTEGER)

Set mtime (last modified) of a_file to a_mtime. Silently exits in case of an error.

file_set_uid

file_set_uid (a_file: FILE; a_uid: INTEGER)

Set user id to a_file to a_uid. Silently exits in case of an error.

file_set_gid

file_set_gid (a_file: FILE; a_gid: INTEGER)

Set group id to a_file to a_gid. Silently exits in case of an error.

Utilities for headers and internal functions

file_owner

`file_owner (uid: INTEGER): STRING

Convert a given uid to a username. Used internally for metadata setting and should not be used directly.

file_group

`file_group (gid: INTEGER): STRING

Convert a given gid to a group name. Used internally for metadata setting and should not be used directly.

checksum

checksum (p: MANAGED_POINTER; a_pos: INTEGER): NATURAL_64

Calculates the checksum of a header block in ustar format.

unify_utf_8_path

unify_utf_8_path (a_path: PATH): STRING_8

Turn given path to a uniform version: UTF-8 string representation with '/' as directory separators

unify_and_split_filename

unify_and_split_filename (a_path: PATH): TUPLE [filename_prefix: STRING_8; filename: STRING_8]

Unfiy given path and split it into prefix and filename (used for ustar headers).