#!/usr/bin/perl -w
use strict;
use Archive::Tar;
use Getopt::Std;
use feature qw(say);
my %opt;
getopts('hcel', \%opt);
help() if $opt{h};
list() if $opt{l};
extract() if $opt{e};
compress() if $opt{c};
sub help {
say "Easily create and extract tarballs";
say " -h display this menu";
say " -c compress file/directory";
say " | eztar -c <file name you wish to make>
<file/directory you wish to compress>";
say " -e extract tarball";
say " | eztar -e <tarball>";
say " -l list contents of tarball";
say " | eztar -l <tarball>";
}
sub list {
if (defined $ARGV[0]) {
my $tar = Archive::Tar->new();
for($tar->list_archive($ARGV[0])) {
say $_;
exit 0;
}
} else {
die 'No file provided.'
}
}
sub extract {
if (defined $ARGV[0]) {
my $tar = Archive::Tar->new();
$tar->read($ARGV[0]);
$tar->extract();
} else {
die 'No file provided.';
}
}
sub compress {
my $file_name = $ARGV[0] or die 'No file name specified.';
if ($file_name !~ /.*\.tar\.gz$/) {
die 'File name must end with \'.tar.gz\'';
}
my $files = $ARGV[1] or die 'No files specified.';
my $tar = Archive::Tar->new();
$tar->write($file_name);
$tar->read($file_name);
$tar->add_files($files);
$tar->write($file_name, COMPRESS_GZIP);
}
So I've just gotten back into Perl and I've written a tarring utility
for my first application. It seems to work okay, but I'm wondering how
it could better be written. Any ideas?
- Just gotten back into Perl, wondering how I could better w... Mike Dunaway
- Re: Just gotten back into Perl, wondering how I could... Shaji Kalidasan
- Re: Just gotten back into Perl, wondering how I c... Mike Dunaway
- Re: Just gotten back into Perl, wondering how I could... Shlomi Fish
- Re: Just gotten back into Perl, wondering how I c... Mike Dunaway
- Re: Just gotten back into Perl, wondering how... Shlomi Fish
