]> git.p6c8.net - devedit.git/commitdiff
- Added some more archive types
authorpcanterino <>
Wed, 5 Jan 2011 18:37:06 +0000 (18:37 +0000)
committerpcanterino <>
Wed, 5 Jan 2011 18:37:06 +0000 (18:37 +0000)
- Show the error returned by Archive::Extract (oh God, I hate this solution...)

errors.conf
modules/Command.pm
modules/File/Access.pm
modules/Tool.pm

index 7da9eca9db368e0ab07b352f8a678f6a703763ff..291f9267f69dc9ffe7c45c7e285b35b98ce04713 100644 (file)
@@ -49,7 +49,7 @@ remove_root       = You are not allowed to remove the root directory.
 rename_failed     = Could not move/rename '{FILE}' to '{NEW_FILE}'.
 rename_root       = You are not allowed to move/rename the root directory.
 text_to_binary    = You are not allowed to write text data into a binary file.
-unpack_failed     = Unpacking of archive file '{FILE}' failed.
+unpack_failed     = Unpacking of archive file '{FILE}' failed.<br><br><tt>Archive::Extract</tt> returned the following error:<br><tt>{AE_ERROR}</tt>
 unpack_no_dir     = You cannot unpack archive file '{FILE}' to an ordinary file or a symbolic ('{NEW_FILE}' is not a directory).
 
 # End of configuration file
\ No newline at end of file
index 2a8ceb9b1621547a289230c79f00a3c1cdce0571..7a1e9b73b9caf9939fa31a66de3cfd28180ec002 100644 (file)
@@ -6,7 +6,7 @@ package Command;
 # Execute Dev-Editor's commands
 #
 # Author:        Patrick Canterino <patrick@patshaping.de>
-# Last modified: 2010-12-31
+# Last modified: 2011-01-05
 #
 # Copyright (C) 1999-2000 Roland Bluethgen, Frank Schoenmann
 # Copyright (C) 2003-2009 Patrick Canterino
@@ -672,7 +672,7 @@ sub exec_unpack($$)
 
   my $return_unpack = archive_unpack($physical,$new_physical);
 
-  return error($config->{'errors'}->{'unpack_failed'},$dir,{FILE => encode_html($virtual), AE_ERROR => ''}) unless($return_unpack);
+  return error($config->{'errors'}->{'unpack_failed'},$dir,{FILE => encode_html($virtual), AE_ERROR => encode_html($File::Access::archive_extract_error)}) unless($return_unpack);
 
   return devedit_reload({command => 'show', file => $new_virtual});
  }
index 5e5cca10f8e143e08de9c920ed3b12b4d1a0dda8..c6b1d60348df8d651452cad66827dd6f4de91a9e 100644 (file)
@@ -7,7 +7,7 @@ package File::Access;
 # using only one command
 #
 # Author:        Patrick Canterino <patrick@patshaping.de>
-# Last modified: 2010-12-27
+# Last modified: 2011-01-05
 #
 # Copyright (C) 1999-2000 Roland Bluethgen, Frank Schoenmann
 # Copyright (C) 2003-2009 Patrick Canterino
@@ -22,7 +22,8 @@ use strict;
 
 use vars qw(@EXPORT
             $has_flock
-            $has_archive_extract);
+            $has_archive_extract
+            $archive_extract_error);
 
 use Fcntl qw(:DEFAULT
              :flock);
@@ -84,11 +85,27 @@ sub archive_unpack($;$)
 
  if($path)
  {
-  return $ae->extract(to => $path);
+  if($ae->extract(to => $path))
+  {
+   return 1;
+  }
+  else
+  {
+   $archive_extract_error = $ae->error;
+   return;
+  }
  }
  else
  {
-  return $ae->extract;
+  if($ae->extract)
+  {
+   return 1;
+  }
+  else
+  {
+   $archive_extract_error = $ae->error;
+   return;
+  }
  }
 }
 
index 4dc6fa29e50d7b9aea731cb7d8a00d0f63d1ef5d..49f255b95c0ee0ef9fa14c96a3802b94b1aa274e 100644 (file)
@@ -6,7 +6,7 @@ package Tool;
 # Some shared sub routines
 #
 # Author:        Patrick Canterino <patrick@patshaping.de>
-# Last modified: 2010-12-23
+# Last modified: 2011-01-05
 #
 # Copyright (C) 1999-2000 Roland Bluethgen, Frank Schoenmann
 # Copyright (C) 2003-2009 Patrick Canterino
@@ -48,7 +48,10 @@ use base qw(Exporter);
              multi_string
              upper_path);
              
-my @archive_exts = ('.zip', 'tar.gz', 'tar.bz2');
+my @archive_exts = ('.zip',     '.tar', '.gz',
+                    '.tar.gz',  '.tgz', '.bz2',
+                    '.tar.bz2', '.tbz', '.tbz2',
+                    '.Z');
 
 # check_path()
 #

patrick-canterino.de