Log Message:
-----------
backport (dpvc): Allow unpacking of .tar.gz and .tar files in addition
to .tgz files.
Tags:
----
rel-2-4-dev
Modified Files:
--------------
webwork2/lib/WeBWorK/ContentGenerator/Instructor:
FileManager.pm
Revision Data
-------------
Index: FileManager.pm
===================================================================
RCS file: /webwork/cvs/system/webwork2/lib/WeBWorK/ContentGenerator/Instructor/FileManager.pm,v
retrieving revision 1.26.2.1
retrieving revision 1.26.2.2
diff -Llib/WeBWorK/ContentGenerator/Instructor/FileManager.pm -Llib/WeBWorK/ContentGenerator/Instructor/FileManager.pm -u -r1.26.2.1 -r1.26.2.2
--- lib/WeBWorK/ContentGenerator/Instructor/FileManager.pm
+++ lib/WeBWorK/ContentGenerator/Instructor/FileManager.pm
@@ -245,7 +245,7 @@
var button = document.getElementById('MakeArchive');
button.value = 'Make Archive';
if (disabled) return;
- if (!files.childNodes[files.selectedIndex].value.match(/\\.tgz\$/)) return;
+ if (!files.childNodes[files.selectedIndex].value.match(/\\.(tar|tar\\.gz|tgz)\$/)) return;
for (var i = files.selectedIndex+1; i < files.length; i++)
{if (files.childNodes[i].selected) return}
button.value = 'Unpack Archive';
@@ -711,8 +711,8 @@
sub UnpackArchive {
my $self = shift;
my $archive = $self->getFile("unpack"); return unless $archive;
- if ($archive !~ m/\.tgz$/) {
- $self->addbadmessage("You can only unpack files ending in '.tgz'");
+ if ($archive !~ m/\.(tar|tar\.gz|tgz)$/) {
+ $self->addbadmessage("You can only unpack files ending in '.tgz', '.tar' or '.tar.gz'");
} else {
$self->unpack($archive);
}
@@ -721,9 +721,9 @@
sub unpack {
my $self = shift;
- my $archive = shift;
+ my $archive = shift; my $z = 'z'; $z = '' if $archive =~ m/\.tar$/;
my $dir = $self->{courseRoot}.'/'.$self->{pwd};
- my $tar = "cd ".shell_quote($dir)." && $self->{ce}{externalPrograms}{tar} -vxzf ".shell_quote($archive);
+ my $tar = "cd ".shell_quote($dir)." && $self->{ce}{externalPrograms}{tar} -vx${z}f ".shell_quote($archive);
my @files = readpipe $tar." 2>&1";
if ($? == 0) {
my $n = scalar(@files); my $s = ($n == 1? "": "s");
@@ -855,7 +855,7 @@
if (-e $file) {
$self->addgoodmessage("$type file '$name' uploaded successfully");
- if ($name =~ m/\.tgz$/ && $self->getFlag('unpack')) {
+ if ($name =~ m/\.(tar|tar\.gz|tgz)$/ && $self->getFlag('unpack')) {
if ($self->unpack($name) && $self->getFlag('autodelete')) {
if (unlink($file)) {$self->addgoodmessage("Archive '$name' deleted")}
else {$self->addbadmessage("Can't delete archive '$name': $!")}
|