Localization update for he and fixing comment in en.
[lhc/web/wiklou.git] / maintenance / rebuildFileCache.php
index 45d8b4a..8c01b90 100644 (file)
@@ -12,9 +12,12 @@ if( !$wgUseFileCache ) {
        echo "Nothing to do -- \$wgUseFileCache is disabled.\n";
        exit(0);
 }
+$wgDisableCounters = false; // no real hits here
 
 $start = isset($args[0]) ? intval($args[0]) : 0;
+$overwrite = isset( $args[1] ) && $args[1] === 'overwrite';
 echo "Building content page file cache from page {$start}!\n";
+echo "Format: <start> [overwrite]\n";
 
 $dbr = wfGetDB( DB_SLAVE );
 $start = $start > 0 ? $start : $dbr->selectField( 'page', 'MIN(page_id)', false, __FUNCTION__ );
@@ -32,6 +35,7 @@ $end += $BATCH_SIZE - 1;
 $blockStart = $start;
 $blockEnd = $start + $BATCH_SIZE - 1;
 
+$dbw = wfGetDB( DB_MASTER );
 // Go through each page and save the output
 while( $blockEnd <= $end ) {
        // Get the pages
@@ -41,6 +45,7 @@ while( $blockEnd <= $end ) {
                array('ORDER BY' => 'page_id ASC','USE INDEX' => 'PRIMARY')
        );
        while( $row = $dbr->fetchObject( $res ) ) {
+               $rebuilt = false;
                $wgTitle = Title::makeTitleSafe( $row->page_namespace, $row->page_title );
                if( null == $wgTitle ) {
                        echo "Page {$row->page_id} bad title\n";
@@ -51,10 +56,12 @@ while( $blockEnd <= $end ) {
                if( $wgArticle->isFileCacheable() ) {
                        $cache = new HTMLFileCache( $wgTitle );
                        if( $cache->isFileCacheGood() ) {
-                               echo "Page {$row->page_id} already cached\n";
-                               continue; // done already!
-                       } else {
-                               echo "Page {$row->page_id} not cached\n";
+                               if( $overwrite ) {
+                                       $rebuilt = true;
+                               } else {
+                                       echo "Page {$row->page_id} already cached\n";
+                                       continue; // done already!
+                               }
                        }
                        ob_start( array(&$cache, 'saveToFileCache' ) ); // save on ob_end_clean()
                        $wgUseFileCache = false; // hack, we don't want $wgArticle fiddling with filecache
@@ -63,10 +70,14 @@ while( $blockEnd <= $end ) {
                        $wgUseFileCache = true;
                        ob_end_clean(); // clear buffer
                        $wgOut = new OutputPage(); // empty out any output page garbage
-                       echo "Cached page {$row->page_id}\n";
+                       if( $rebuilt )
+                               echo "Re-cached page {$row->page_id}\n";
+                       else
+                               echo "Cached page {$row->page_id}\n";
                } else {
                        echo "Page {$row->page_id} not cacheable\n";
                }
+               $dbw->commit(); // commit any changes
        }
        $blockStart += $BATCH_SIZE;
        $blockEnd += $BATCH_SIZE;