#
Chapter 44
`tar.ss`: Creating `tar` Files

To load: `(require (lib "tar.ss"))`

This library provides a facility for creating `tar` files. It creates tar files in USTAR format that are identical to files that the Unix utility `pax` generates. Note that the USTAR format imposes limits on path lengths. The resulting archives contain only directories and files (symbolic links are followed), and owner information is not preserved; the owner that is stored in the archive is always `root'.

`(tar``` `tar-file path `···```)` PROCEDURE

Creates `tar-file`, which holds the complete content of all `path`s. The given `path`s are all expected to be relative path names of existing directories and files (i.e., relative to the current directory). If a nested path is provided as a `path`, its ancestor directories are also added to the resulting tar file, up to the current directory (using `pathlist-closure`; see section 11.3.3 in PLT MzScheme: Language Manual).

`(tar->output``` `paths``` [`output-port`]`)` PROCEDURE

Packages each of the given `paths` in a tar format archive that is written directly to the `output-port` or to the current output port if `output-port` is not given. Also, the specified `paths` are included as-is; if a directory is specified, its content is not automatically added, and nested directories are added without parent directories.

(See also section 51.)