(bug 19289) importDump.php can now handle bzip2 and 7zip.
[lhc/web/wiklou.git] / maintenance / importDump.php
index 3458c85..01c96e9 100644 (file)
@@ -25,6 +25,7 @@
 $optionsWithArgs = array( 'report' );
 
 require_once( dirname(__FILE__) . '/commandLine.inc' );
+require_once( '7zip.inc' );
 
 /**
  * @ingroup Maintenance
@@ -115,10 +116,19 @@ class BackupReader {
        }
 
        function importFromFile( $filename ) {
+               $t = true;
                if( preg_match( '/\.gz$/', $filename ) ) {
                        $filename = 'compress.zlib://' . $filename;
                }
-               $file = fopen( $filename, 'rt' );
+               elseif( preg_match( '/\.bz2$/', $filename ) ) {
+                       $filename = 'compress.bzip2://' . $filename;
+               }
+               elseif( preg_match( '/\.7z$/', $filename ) ) {
+                       $filename = 'mediawiki.compress.7z://' . $filename;
+                       $t = false;
+               }
+
+               $file = fopen( $filename, $t ? 'rt' : 't' ); //our 7zip wrapper uses popen, which seems not to like two-letter modes
                return $this->importFromHandle( $file );
        }