Merge "Add .pipeline/ with dev image variant"
[lhc/web/wiklou.git] / includes / export / Dump7ZipOutput.php
index c299166..833d553 100644 (file)
  * @file
  */
 
+use MediaWiki\Shell\Shell;
+
 /**
  * @ingroup Dump
  */
 class Dump7ZipOutput extends DumpPipeOutput {
+       /**
+        * @var int
+        */
+       protected $compressionLevel;
+
        /**
         * @param string $file
+        * @param int $cmpLevel Compression level passed to 7za command's -mx
         */
-       function __construct( $file ) {
+       function __construct( $file, $cmpLevel = 4 ) {
+               $this->compressionLevel = $cmpLevel;
                $command = $this->setup7zCommand( $file );
                parent::__construct( $command );
                $this->filename = $file;
@@ -41,7 +50,9 @@ class Dump7ZipOutput extends DumpPipeOutput {
         * @return string
         */
        function setup7zCommand( $file ) {
-               $command = "7za a -bd -si -mx=4 " . wfEscapeShellArg( $file );
+               $command = "7za a -bd -si -mx=";
+               $command .= Shell::escape( $this->compressionLevel ) . ' ';
+               $command .= Shell::escape( $file );
                // Suppress annoying useless crap from p7zip
                // Unfortunately this could suppress real error messages too
                $command .= ' >' . wfGetNull() . ' 2>&1';
@@ -49,8 +60,7 @@ class Dump7ZipOutput extends DumpPipeOutput {
        }
 
        /**
-        * @param string $newname
-        * @param bool $open
+        * @inheritDoc
         */
        function closeAndRename( $newname, $open = false ) {
                $newname = $this->checkRenameArgCount( $newname );