NAME

Path::Tiny::Archive::Tar - Tar/untar add-on for file path utility

VERSION

version 0.003

SYNOPSIS

use Path::Tiny
use Path::Tiny::Archive::Tar qw( :const );

path("foo/bar.txt")->tar("foo/bar.tgz", COMPRESSION_GZIP);
path("foo/bar.zip")->untar("baz");

DESCRIPTION

This module provides two additional methods for Path::Tiny for working with tar archives.

METHODS

tar

path("/tmp/foo.txt")->tar("/tmp/foo.tar");
path("/tmp/foo")->tar("/tmp/foo.tar.gz", COMPRESSION_GZIP);

Creates a tar archive and appends a file or directory tree to it. Returns the path to the archive or undef.

You can choose different compression types and levels.

path("/tmp/foo")->zip("/tmp/foo.tgz", COMPRESSION_GZIP);

The types and levels given can be:

  • COMPRESSION_NONE: No compression. This is the type that will be used if not specified.

  • COMPRESSION_GZIP: Compress using gzip.

    • 1 to 9: This is gzip compression levels. 1 gives the best speed and worst compression, and 9 gives the best compression and worst speed.

    • COMPRESSION_GZIP_NONE: This is a synonym for gzip level 0. No compression.

    • COMPRESSION_GZIP_FASTEST: This is a synonym for gzip level 1.

    • COMPRESSION_GZIP_BEST: This is a synonym for gzip level 9.

    • COMPRESSION_GZIP_DEFAULT: This gives a good compromise between speed and compression for gzip, and is currently equivalent to 6 (this is in the zlib code). This is a synonym for COMPRESSION_GZIP.

  • COMPRESSION_BZIP2: Compress using bzip2.

tgz

path("/tmp/foo.txt")->tgz("/tmp/foo.tar.gz");

Method tgz is synonym for tar with COMPRESSION_GZIP type.

tbz2

path("/tmp/foo.txt")->tbz2("/tmp/foo.tar.bzip2");

Method tbz2 is synonym for tar with COMPRESSION_BZIP2 type.

untar

path("/tmp/foo.tar")->untar("/tmp/foo");

Extracts a tar archive to specified directory. Returns the path to the destination directory or undef.

AUTHOR

Denis Ibaev <dionys@gmail.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2021 by Denis Ibaev.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.