X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Finstaller%2FCliInstaller.php;h=0c3876c79dd549302bb39b4bffe0bf01b43727de;hb=d58dfc4793cfb14326c3d4ea4357a7453d6f3245;hp=710823aae7328f2e0d1040b616b56687cf1662cb;hpb=82b0358137d75b1ee32b264c085aada9e90a7b68;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/installer/CliInstaller.php b/includes/installer/CliInstaller.php index 710823aae7..0c3876c79d 100644 --- a/includes/installer/CliInstaller.php +++ b/includes/installer/CliInstaller.php @@ -2,6 +2,21 @@ /** * Core installer command line interface. * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * http://www.gnu.org/copyleft/gpl.html + * * @file * @ingroup Deployment */ @@ -13,6 +28,7 @@ * @since 1.17 */ class CliInstaller extends Installer { + private $specifiedScriptPath = false; private $optionMap = array( 'dbtype' => 'wgDBtype', @@ -23,13 +39,10 @@ class CliInstaller extends Installer { 'dbprefix' => 'wgDBprefix', 'dbtableoptions' => 'wgDBTableOptions', 'dbmysql5' => 'wgDBmysql5', - 'dbserver' => 'wgDBserver', 'dbport' => 'wgDBport', - 'dbname' => 'wgDBname', - 'dbuser' => 'wgDBuser', - 'dbpass' => 'wgDBpassword', 'dbschema' => 'wgDBmwschema', 'dbpath' => 'wgSQLiteDataDir', + 'server' => 'wgServer', 'scriptpath' => 'wgScriptPath', ); @@ -45,6 +58,10 @@ class CliInstaller extends Installer { parent::__construct(); + if ( isset( $option['scriptpath'] ) ) { + $this->specifiedScriptPath = true; + } + foreach ( $this->optionMap as $opt => $global ) { if ( isset( $option[$opt] ) ) { $GLOBALS[$global] = $option[$opt]; @@ -77,6 +94,14 @@ class CliInstaller extends Installer { $this->getVar( 'wgDBuser' ) ); $this->setVar( '_InstallPassword', $this->getVar( 'wgDBpassword' ) ); + } else { + $this->setVar( '_InstallUser', + $option['installdbuser'] ); + $this->setVar( '_InstallPassword', + isset( $option['installdbpass'] ) ? $option['installdbpass'] : "" ); + + // Assume that if we're given the installer user, we'll create the account. + $this->setVar( '_CreateDBAccount', true ); } if ( isset( $option['pass'] ) ) { @@ -88,7 +113,7 @@ class CliInstaller extends Installer { * Main entry point. */ public function execute() { - $vars = $this->getExistingLocalSettings(); + $vars = Installer::getExistingLocalSettings(); if( $vars ) { $this->showStatusMessage( Status::newFatal( "config-localsettings-cli-upgrade" ) @@ -121,14 +146,33 @@ class CliInstaller extends Installer { } public function showMessage( $msg /*, ... */ ) { - $params = func_get_args(); - array_shift( $params ); + echo $this->getMessageText( func_get_args() ) . "\n"; + flush(); + } + + public function showError( $msg /*, ... */ ) { + echo "***{$this->getMessageText( func_get_args() )}***\n"; + flush(); + } + + /** + * @param $params array + * + * @return string + */ + protected function getMessageText( $params ) { + $msg = array_shift( $params ); $text = wfMsgExt( $msg, array( 'parseinline' ), $params ); $text = preg_replace( '/(.*?)<\/a>/', '$2 <$1>', $text ); - echo html_entity_decode( strip_tags( $text ), ENT_QUOTES ) . "\n"; - flush(); + return html_entity_decode( strip_tags( $text ), ENT_QUOTES ); + } + + /** + * Dummy + */ + public function showHelpBox( $msg /*, ... */ ) { } public function showStatusMessage( Status $status ) { @@ -146,4 +190,20 @@ class CliInstaller extends Installer { exit; } } + + public function envCheckPath( ) { + if ( !$this->specifiedScriptPath ) { + $this->showMessage( 'config-no-cli-uri', $this->getVar("wgScriptPath") ); + } + return parent::envCheckPath(); + } + + protected function envGetDefaultServer() { + return $this->getVar( 'wgServer' ); + } + + public function dirIsExecutable( $dir, $url ) { + $this->showMessage( 'config-no-cli-uploads-check', $dir ); + return false; + } }