From af724895e32414d3011b3af46c2c88b967e4c405 Mon Sep 17 00:00:00 2001 From: Waldir Pimenta Date: Sun, 26 May 2013 14:17:24 +0100 Subject: [PATCH] Several tweaks to the install.php script - Fix description of the "admin" option, which says there's a default, "WikiSysop", when this isn't the case. - Use "MediaWiki" instead of "Don't care" as the default value for the "name" argument - make the "name" argument optional, so that its default value can actually work as such - test for getOption's default parameter value (null) rather than providing one (false) and testing for it - fix indication of default value for --dbpath and document where it comes from - format the default for --confpath the same way as other defaults are displayed - add description - use trim() for --passfile, as is done for --dbpassfile - use single quotes where possible - mention in the documentation where the default values come from - various minor text adjustments - bonus: typo fix in a comment in Maintenance.php Change-Id: Icbc0b02cfbf09b3f97ed86f4a68c3b35a9c839c8 --- maintenance/Maintenance.php | 2 +- maintenance/install.php | 60 ++++++++++++++++++++----------------- 2 files changed, 33 insertions(+), 29 deletions(-) diff --git a/maintenance/Maintenance.php b/maintenance/Maintenance.php index 479030fae3..e316d9e237 100644 --- a/maintenance/Maintenance.php +++ b/maintenance/Maintenance.php @@ -731,7 +731,7 @@ abstract class Maintenance { return; } - $screenWidth = 80; // TODO: Caculate this! + $screenWidth = 80; // TODO: Calculate this! $tab = " "; $descWidth = $screenWidth - ( 2 * strlen( $tab ) ); diff --git a/maintenance/install.php b/maintenance/install.php index 20d6ad5a8b..5a3e00cf8c 100644 --- a/maintenance/install.php +++ b/maintenance/install.php @@ -29,11 +29,14 @@ if ( !function_exists( 'version_compare' ) || ( version_compare( phpversion(), ' define( 'MW_CONFIG_CALLBACK', 'Installer::overrideConfig' ); define( 'MEDIAWIKI_INSTALL', true ); -require_once dirname( __DIR__ ) . "/maintenance/Maintenance.php"; +require_once dirname( __DIR__ ) . '/maintenance/Maintenance.php'; /** * Maintenance script to install and configure MediaWiki * + * Default values for the options are defined in DefaultSettings.php (see the mapping in CliInstaller.php) + * Default for --dbpath (SQLite-specific) is defined in SqliteInstaller::getGlobalDefaults + * * @ingroup Maintenance */ class CommandLineInstaller extends Maintenance { @@ -41,9 +44,12 @@ class CommandLineInstaller extends Maintenance { parent::__construct(); global $IP; - $this->addArg( 'name', 'The name of the wiki', true ); + $this->addDescription( "CLI-based MediaWiki installation and configuration.\n" . + "Defaut options are indicated in parenthesis." ); + + $this->addArg( 'name', 'The name of the wiki (MediaWiki)', false ); - $this->addArg( 'admin', 'The username of the wiki administrator (WikiSysop)', true ); + $this->addArg( 'admin', 'The username of the wiki administrator.' ); $this->addOption( 'pass', 'The password for the wiki administrator.', false, true ); $this->addOption( 'passfile', @@ -66,22 +72,22 @@ class CommandLineInstaller extends Maintenance { $this->addOption( 'dbserver', 'The database host (localhost)', false, true ); $this->addOption( 'dbport', 'The database port; only for PostgreSQL (5432)', false, true ); $this->addOption( 'dbname', 'The database name (my_wiki)', false, true ); - $this->addOption( 'dbpath', 'The path for the SQLite DB (/var/data)', false, true ); + $this->addOption( 'dbpath', 'The path for the SQLite DB ($IP/data)', false, true ); $this->addOption( 'dbprefix', 'Optional database table name prefix', false, true ); $this->addOption( 'installdbuser', 'The user to use for installing (root)', false, true ); - $this->addOption( 'installdbpass', 'The pasword for the DB user to install as.', false, true ); + $this->addOption( 'installdbpass', 'The password for the DB user to install as.', false, true ); $this->addOption( 'dbuser', 'The user to use for normal operations (wikiuser)', false, true ); - $this->addOption( 'dbpass', 'The pasword for the DB user for normal operations', false, true ); + $this->addOption( 'dbpass', 'The password for the DB user for normal operations', false, true ); $this->addOption( 'dbpassfile', 'An alternative way to provide dbpass option, as the contents of this file', false, true ); - $this->addOption( 'confpath', "Path to write LocalSettings.php to, default $IP", false, true ); + $this->addOption( 'confpath', "Path to write LocalSettings.php to ($IP)", false, true ); /* $this->addOption( 'dbschema', 'The schema for the MediaWiki DB in pg (mediawiki)', false, true ); - $this->addOption( 'namespace', 'The project namespace (same as the name)', false, true ); + $this->addOption( 'namespace', 'The project namespace (same as the "name" argument)', false, true ); */ $this->addOption( 'env-checks', "Run environment checks only, don't change anything" ); } @@ -89,18 +95,17 @@ class CommandLineInstaller extends Maintenance { function execute() { global $IP; - // Will not be set if used with --env-checks - $siteName = isset( $this->mArgs[0] ) ? $this->mArgs[0] : "Don't care"; - $adminName = isset( $this->mArgs[1] ) ? $this->mArgs[1] : null; + $siteName = $this->getArg( 0, 'MediaWiki' ); // Will not be set if used with --env-checks + $adminName = $this->getArg( 1 ); - $dbpassfile = $this->getOption( 'dbpassfile', false ); - if ( $dbpassfile !== false ) { - if ( $this->getOption( 'dbpass', false ) !== false ) { - $this->error( 'WARNING: You provide the options "dbpass" and "dbpassfile". ' - . 'The content of "dbpassfile" overwrites "dbpass".' ); + $dbpassfile = $this->getOption( 'dbpassfile' ); + if ( $dbpassfile !== null ) { + if ( $this->getOption( 'dbpass' ) !== null ) { + $this->error( 'WARNING: You have provided the options "dbpass" and "dbpassfile". ' + . 'The content of "dbpassfile" overrides "dbpass".' ); } wfSuppressWarnings(); - $dbpass = file_get_contents( $dbpassfile ); + $dbpass = file_get_contents( $dbpassfile ); // returns false on failure wfRestoreWarnings(); if ( $dbpass === false ) { $this->error( "Couldn't open $dbpassfile", true ); @@ -108,25 +113,24 @@ class CommandLineInstaller extends Maintenance { $this->mOptions['dbpass'] = trim( $dbpass, "\r\n" ); } - $passfile = $this->getOption( 'passfile', false ); - if ( $passfile !== false ) { - if ( $this->getOption( 'pass', false ) !== false ) { - $this->error( 'WARNING: You provide the options "pass" and "passfile". ' - . 'The content of "passfile" overwrites "pass".' ); + $passfile = $this->getOption( 'passfile' ); + if ( $passfile !== null ) { + if ( $this->getOption( 'pass' ) !== null ) { + $this->error( 'WARNING: You have provided the options "pass" and "passfile". ' + . 'The content of "passfile" overrides "pass".' ); } wfSuppressWarnings(); - $pass = file_get_contents( $passfile ); + $pass = file_get_contents( $passfile ); // returns false on failure wfRestoreWarnings(); if ( $pass === false ) { $this->error( "Couldn't open $passfile", true ); } - $this->mOptions['pass'] = str_replace( array( "\n", "\r" ), "", $pass ); - } elseif ( $this->getOption( 'pass', false ) === false ) { + $this->mOptions['pass'] = trim( $pass, "\r\n" ); + } elseif ( $this->getOption( 'pass' ) === null ) { $this->error( 'You need to provide the option "pass" or "passfile"', true ); } - $installer = - InstallerOverrides::getCliInstaller( $siteName, $adminName, $this->mOptions ); + $installer = InstallerOverrides::getCliInstaller( $siteName, $adminName, $this->mOptions ); $status = $installer->doEnvironmentChecks(); if ( $status->isGood() ) { @@ -149,6 +153,6 @@ class CommandLineInstaller extends Maintenance { } } -$maintClass = "CommandLineInstaller"; +$maintClass = 'CommandLineInstaller'; require_once RUN_MAINTENANCE_IF_MAIN; -- 2.20.1