https://www.mediawiki.org/wiki/Special:Code/MediaWiki/115114

Revision: 115114
Author:   aaron
Date:     2012-05-02 23:40:25 +0000 (Wed, 02 May 2012)
Log Message:
-----------
Updated activeMWVersions to handle * for extended version numbers.

Modified Paths:
--------------
    trunk/tools/mwmultiversion/multiversion/activeMWVersions
    trunk/tools/mwmultiversion/multiversion/switchAllMediaWikis

Modified: trunk/tools/mwmultiversion/multiversion/activeMWVersions
===================================================================
--- trunk/tools/mwmultiversion/multiversion/activeMWVersions    2012-05-02 
23:35:21 UTC (rev 115113)
+++ trunk/tools/mwmultiversion/multiversion/activeMWVersions    2012-05-02 
23:40:25 UTC (rev 115114)
@@ -21,39 +21,29 @@
        array_shift( $options ); // first item is this file
 
        if ( in_array( '--home', $options ) ) {
-               $path = MULTIVER_CDB_DIR_HOME . '/wikiversions.dat';
+               $datPath = MULTIVER_CDB_DIR_HOME . '/wikiversions.dat';
        } else {
-               $path = MULTIVER_CDB_DIR_APACHE . '/wikiversions.dat';
+               $datPath = MULTIVER_CDB_DIR_APACHE . '/wikiversions.dat';
        }
 
-       $verList = array_filter( explode( "\n", file_get_contents( $path ) ) );
-       if ( !count( $verList ) ) {
+       # Get all the wikiversion rows in wikiversions.dat...
+       try {
+               $versionRows = MWWikiversions::readWikiVersionsFile( $datPath );
+       } catch( Exception $e ) {
                if ( in_array( '--report', $options ) ) {
-                       echo( "Unable to read wikiversions.dat.\n" );
+                       throw $e; // show error
+               } else {
+                       die( 1 ); // silent death
                }
-               die( 1 );
        }
 
        $result = $activeVersions = array();
-       foreach ( $verList as $row ) {
-               $items = explode( ' ', trim( $row ) );
-               $dbName = $items[0];
-               $version = $items[1];
-               $extVersion = isset( $items[2] ) ? $items[2] : '';
-
-               if ( substr( $version, 0, 4 ) !== 'php-' ) {
-                       if ( in_array( '--report', $options ) ) {
-                               echo( "Unable to read wikiversions.dat entry: 
$version.\n" );
-                       }
-                       die( 1 );
-               }
-               $version = substr( $version, 4 ); // remove 'php-'
-
-               if ( $extVersion !== '' && in_array( '--extended', $options ) ) 
{
+       foreach ( $versionRows as $row ) {
+               list( $dbName, $version, $extVersion, $comment ) = $row;
+               if ( $extVersion !== '*' && in_array( '--extended', $options ) 
) {
                        $version .= "-$extVersion";
                }
-
-               if ( !isset( $activeVersions[$version] ) ) {
+               if ( !isset( $activeVersions[$version] ) ) { // already listed?
                        $activeVersions[$version] = 1;
                        if ( in_array( '--withdb', $options ) ) {
                                $result[] = "{$version}={$dbName}";
@@ -61,6 +51,7 @@
                                $result[] = "{$version}";
                        }
                }
+
        }
 
        return implode( ' ', $result );

Modified: trunk/tools/mwmultiversion/multiversion/switchAllMediaWikis
===================================================================
--- trunk/tools/mwmultiversion/multiversion/switchAllMediaWikis 2012-05-02 
23:35:21 UTC (rev 115113)
+++ trunk/tools/mwmultiversion/multiversion/switchAllMediaWikis 2012-05-02 
23:40:25 UTC (rev 115114)
@@ -82,7 +82,7 @@
        ( $retVal == 0 ) or die( 1 );
 
        echo "Re-configured $count wiki(s) from $oldVersion to $newVersion.\n";
-       echo "The DB list contained " . count( $dbList ) . " wikis.\n";
+       echo "The DB list contained " . count( $dbList ) . " wiki(s).\n";
 }
 
 switchAllMediaWikis();


_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to