Merge "Give redirects a sort index in title widget"
[lhc/web/wiklou.git] / maintenance / backup.inc
index ec59c60..3271fd6 100644 (file)
@@ -51,8 +51,8 @@ class BackupDumper extends Maintenance {
        protected $pageCountLast = 0;
        protected $revCountLast = 0;
 
-       protected $outputTypes = array();
-       protected $filterTypes = array();
+       protected $outputTypes = [];
+       protected $filterTypes = [];
 
        protected $ID = 0;
 
@@ -99,6 +99,8 @@ class BackupDumper extends Maintenance {
                $this->addOption( 'report', 'Report position and speed after every n pages processed. ' .
                        'Default: 100.', false, true );
                $this->addOption( 'server', 'Force reading from MySQL server', false, true );
+               $this->addOption( '7ziplevel', '7zip compression level for all 7zip outputs. Used for ' .
+                       '-mx option to 7za command.', false, true );
 
                if ( $args ) {
                        // Args should be loaded and processed so that dump() can be called directly
@@ -135,8 +137,8 @@ class BackupDumper extends Maintenance {
                if ( $file != '' ) {
                        require_once $file;
                }
-               $register = array( $class, 'register' );
-               call_user_func_array( $register, array( &$this ) );
+               $register = [ $class, 'register' ];
+               call_user_func_array( $register, [ $this ] );
        }
 
        function execute() {
@@ -148,7 +150,7 @@ class BackupDumper extends Maintenance {
         */
        function processOptions() {
                $sink = null;
-               $sinks = array();
+               $sinks = [];
 
                $options = $this->orderedOptions;
                foreach ( $options as $arg ) {
@@ -182,7 +184,11 @@ class BackupDumper extends Maintenance {
                                                $this->fatalError( "Unrecognized output sink type '$type'" );
                                        }
                                        $class = $this->outputTypes[$type];
-                                       $sink = new $class( $file );
+                                       if ( $type === "7zip" ) {
+                                               $sink = new $class( $file, intval( $this->getOption( '7ziplevel' ) ) );
+                                       } else {
+                                               $sink = new $class( $file );
+                                       }
 
                                        break;
                                case 'filter':
@@ -319,7 +325,7 @@ class BackupDumper extends Maintenance {
 
                // Discourage the server from disconnecting us if it takes a long time
                // to read out the big ol' batch query.
-               $db->setSessionOptions( array( 'connTimeout' => 3600 * 24 ) );
+               $db->setSessionOptions( [ 'connTimeout' => 3600 * 24 ] );
 
                return $db;
        }