Added --env-checks parameter to install.php that checks for prerequisites instead...
authorMax Semenik <maxsem@users.mediawiki.org>
Tue, 16 Nov 2010 18:13:35 +0000 (18:13 +0000)
committerMax Semenik <maxsem@users.mediawiki.org>
Tue, 16 Nov 2010 18:13:35 +0000 (18:13 +0000)
includes/installer/CliInstaller.php
maintenance/install.php

index 61c9470..fc71c0c 100644 (file)
@@ -120,7 +120,11 @@ class CliInstaller extends CoreInstaller {
        }
 
        public function showMessage( $msg /*, ... */ ) {
-               echo html_entity_decode( strip_tags( $msg ), ENT_QUOTES );
+               $params = func_get_args();
+               array_shift( $params );
+               $text = wfMsgExt( $msg, array( 'parseinline' ), $params );
+               $text = preg_replace( '/<a href="(.*?)".*?>(.*?)<\/a>/', '$2 &lt;$1&gt;', $text );
+               echo html_entity_decode( strip_tags( $text ), ENT_QUOTES ) . "\n";
                flush();
        }
 
index 1424794..56e49cf 100644 (file)
@@ -52,17 +52,30 @@ class CommandLineInstaller extends Maintenance {
                /* $this->addOption( 'dbschema', 'The schema for the MediaWiki DB in pg (mediawiki)', false, true ); */
                /* $this->addOption( 'dbtsearch2schema', 'The schema for the tsearch2 DB in pg (public)', false, true ); */
                /* $this->addOption( 'namespace', 'The project namespace (same as the name)', false, true ); */
+               $this->addOption( 'env-checks', "Run environment checks only, don't change anything" );
        }
 
        public function execute() {
-               global $IP;
+               global $IP, $wgTitle;
+               $siteName = isset( $this->mArgs[0] ) ? $this->mArgs[0] : "Don't care"; // Will not be set if used with --env-checks
                $adminName = isset( $this->mArgs[1] ) ? $this->mArgs[1] : null;
+               $wgTitle = Title::newFromText( 'Installer script' );
 
                $installer =
-                       new CliInstaller( $this->mArgs[0], $adminName, $this->mOptions );
+                       new CliInstaller( $siteName, $adminName, $this->mOptions );
+
+               if ( $this->hasOption( 'env-checks' ) ) {
+                       $installer->doEnvironmentChecks();
+               } else {
+                       $installer->execute();
+                       $installer->writeConfigurationFile( $this->getOption( 'confpath', $IP ) );
+               }
+       }
 
-               $installer->execute();
-               $installer->writeConfigurationFile( $this->getOption( 'confpath', $IP ) );
+       protected function validateParamsAndArgs() {
+               if ( !$this->hasOption( 'env-checks' ) ) {
+                       parent::validateParamsAndArgs();
+               }
        }
 }