From a677d0fae048597f99100907cee0a91b9c84e8cb Mon Sep 17 00:00:00 2001 From: Antoine Musso Date: Tue, 30 Apr 2013 16:50:20 +0200 Subject: [PATCH] rebuildLocalisationCache: Implement --lang option It would rebuild all language caches by default. We were lacking an option to rebuild only one language, for example when it get corrupted or the cache file for a language got removed. The new --lang accepts a list of comma separated langs to rebuild the cache for. Example usage: php rebuildLocalisationCache.php --lang en,fr,de Nonexistent languages are simply ignored. The script dies if it ends up with no languages to rebuild. Change-Id: I4c5e69abb76ffd8b88b595e3687edab3bb267ccc --- RELEASE-NOTES-1.22 | 2 ++ maintenance/rebuildLocalisationCache.php | 16 +++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/RELEASE-NOTES-1.22 b/RELEASE-NOTES-1.22 index aad11a010b..eea97563e1 100644 --- a/RELEASE-NOTES-1.22 +++ b/RELEASE-NOTES-1.22 @@ -56,6 +56,8 @@ production. language links associated with a page before display. * Chosen (http://harvesthq.github.io/chosen/) was added as module 'jquery.chosen' * HTMLForm will turn multiselect checkboxes into a Chosen interface when setting cssclass 'mw-chosen' +* rebuildLocalisationCache learned --lang option. Let you rebuild l10n caches + of the specified languages instead of all of them. === Bug fixes in 1.22 === * Disable Special:PasswordReset when $wgEnableEmail. Previously one could still diff --git a/maintenance/rebuildLocalisationCache.php b/maintenance/rebuildLocalisationCache.php index db77564b36..81e8904e31 100644 --- a/maintenance/rebuildLocalisationCache.php +++ b/maintenance/rebuildLocalisationCache.php @@ -44,6 +44,8 @@ class RebuildLocalisationCache extends Maintenance { $this->addOption( 'threads', 'Fork more than one thread', false, true ); $this->addOption( 'outdir', 'Override the output directory (normally $wgCacheDirectory)', false, true ); + $this->addOption( 'lang', 'Only rebuild these languages, comma separated.', + false, true ); } public function memoryLimit() { @@ -90,7 +92,19 @@ class RebuildLocalisationCache extends Maintenance { } $lc = new LocalisationCache_BulkLoad( $conf ); - $codes = array_keys( Language::fetchLanguageNames( null, 'mwfile' ) ); + $allCodes = array_keys( Language::fetchLanguageNames( null, 'mwfile' ) ); + if( $this->hasOption( 'lang' ) ) { + # Validate requested languages + $codes = array_intersect( $allCodes, + explode( ',', $this->getOption( 'lang' ) ) ); + # Bailed out if nothing is left + if( count( $codes ) == 0 ) { + $this->error( 'None of the languages specified exists.', 1 ); + } + } else { + # By default get all languages + $codes = $allCodes; + } sort( $codes ); // Initialise and split into chunks -- 2.20.1