From dadec1b2d38c0b2d48bb2278b06cc2a03799433a Mon Sep 17 00:00:00 2001 From: Max Semenik Date: Wed, 4 Jun 2014 15:31:30 -0700 Subject: [PATCH] Add a maintenance script to list variants and languages with then Change-Id: Ide9ab040e93f3fc942b67363b7444903521ef79a --- maintenance/language/listVariants.php | 73 +++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 maintenance/language/listVariants.php diff --git a/maintenance/language/listVariants.php b/maintenance/language/listVariants.php new file mode 100644 index 0000000000..4bff891644 --- /dev/null +++ b/maintenance/language/listVariants.php @@ -0,0 +1,73 @@ +mDescription = 'Outputs a list of language variants'; + $this->addOption( 'flat', 'Output variants in a flat list' ); + $this->addOption( 'json', 'Output variants as JSON' ); + } + + public function execute() { + $variantLangs = array(); + $variants = array(); + foreach ( LanguageConverter::$languagesWithVariants as $langCode ) { + $lang = Language::factory( $langCode ); + if ( count( $lang->getVariants() ) > 1 ) { + $variants += array_flip( $lang->getVariants() ); + $variantLangs[$langCode] = $lang->getVariants(); + } + } + $variants = array_keys( $variants ); + sort( $variants ); + $result = $this->hasOption( 'flat' ) ? $variants : $variantLangs; + + // Not using $this->output() because muting makes no sense here + if ( $this->hasOption( 'json' ) ) { + echo FormatJson::encode( $result, true ) . "\n"; + } else { + foreach ( $result as $key => $value ) { + if ( is_array( $value ) ) { + echo "$key\n"; + foreach ( $value as $variant ) { + echo " $variant\n"; + } + } else { + echo "$value\n"; + } + } + } + } +} + +$maintClass = 'ListVariants'; +require_once RUN_MAINTENANCE_IF_MAIN; -- 2.20.1