From: Sam H. v. a. <we...@ma...> - 2007-08-25 18:28:23
|
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': $!")} |