* (bug 5355) Include skin name and style JS settings in page source;
[lhc/web/wiklou.git] / maintenance / rebuildMessages.php
index 30d89c7..40c8f60 100755 (executable)
@@ -1,64 +1,63 @@
-<?
-$wgCommandLineMode = true;
+<?php
+/**
+ * @todo document
+ * @package MediaWiki
+ * @subpackage Maintenance
+ */
 
-$sep = strchr( $include_path = ini_get( "include_path" ), ";" ) ? ";" : ":";
-if ( $argv[1] ) {
-       $lang = $argv[1];
-       putenv( "wikilang=$lang");
-       $settingsFile = "/apache/htdocs/{$argv[1]}/w/LocalSettings.php";
-       $newpath = "/apache/common/php$sep";
+/** */
+$options = array( 'update' => null, 'rebuild' => null );
+require_once( "commandLine.inc" );
+include_once( "InitialiseMessages.inc" );
+
+$wgTitle = Title::newFromText( "Rebuild messages script" );
+
+if ( isset( $args[0] ) ) {
+       # Retain script compatibility
+       $response = array_shift( $args );
+       if ( $response == "update" ) {
+               $response = 1;
+       } elseif ( $response == "rebuild" ) {
+               $response = 2;
+       }
 } else {
-       $settingsFile = "../LocalSettings.php";
-       $newpath = "";
+       $response = 0;
 }
-
-if ( $argv[2] ) {
-       $patterns = explode( ",", $argv[2]);
+if ( isset( $args[0] ) ) {
+       $messages = loadLanguageFile( array_shift( $args ) );
 } else {
-       $patterns = false;
+       $messages = false;
 }
+if( isset( $options['update'] ) ) $response = 1;
+if( isset( $options['rebuild'] ) ) $response = 2;
 
-if ( ! is_readable( $settingsFile ) ) {
-       print "A copy of your installation's LocalSettings.php\n" .
-         "must exist in the source directory.\n";
-       exit();
-}
+if ( $response == 0 ) {
+       $dbr =& wfGetDB( DB_SLAVE );
+       $row = $dbr->selectRow( "page", array("count(*) as c"), array("page_namespace" => NS_MEDIAWIKI) );
+       print "Current namespace size: {$row->c}\n";
 
-ini_set( "include_path", "$newpath$IP$sep$include_path" );
+       print <<<END
+Usage:   php rebuildMessages.php <action> [filename]
 
-$wgCommandLineMode = true;
-$DP = "../includes";
-include_once( $settingsFile );
+Action must be one of:
+  --update   Update messages to include latest additions to Language.php
+  --rebuild  Delete all messages and reinitialise namespace
 
-include_once( "Setup.php" );
-include_once( "./InitialiseMessages.inc" );
-include_once( "../install-utils.inc" );
-$wgTitle = Title::newFromText( "Rebuild messages script" );
-$wgCommandLineMode = true;
-set_time_limit(0);
+If a message dump file is given, messages will be read from it to supplement
+the defaults in MediaWiki's Language*.php. The file should contain a serialized
+PHP associative array, as produced by dumpMessages.php.
 
-print  "1. Update messages to include latest additions to Language.php\n" . 
-               "2. Delete all messages and reinitialise namespace\n" .
-               "3. Quit\n\n".
-               
-               "Please enter a number: ";
 
-do {
-       $response = IntVal(readconsole());
-       if ( $response >= 1 && $response <= 3 ) {
-               $good = true;
-       } else {
-               $good = false;
-               print "Please type a number between 1 and 3: ";
-       }
-} while ( !$good );
+END;
+       exit(0);
+}
 
 switch ( $response ) {
        case 1:
-               initialiseMessages( false );
+               initialiseMessages( false, $messages );
                break;
        case 2:
-               initialiseMessages( true );
+               initialiseMessages( true, $messages );
                break;
 }