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
This commit is contained in:
parent
4607c38b25
commit
a677d0fae0
2 changed files with 17 additions and 1 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue