END;
    exit;
}
# Select an output engine
switch ($options['output']) {
    case 'wiki':
        $wgOut = new wikiStatsOutput();
        break;
    case 'metawiki':
        $wgOut = new metawikiStatsOutput();
        break;
    case 'text':
        $wgOut = new textStatsOutput();
        break;
    case 'csv':
        $wgOut = new csvStatsOutput();
        break;
    default:
        showUsage();
}
# Languages
$wgLanguages = new languages();
# Header
$wgOut->heading();
$wgOut->blockstart();
$wgOut->element('Language', true);
$wgOut->element('Code', true);
$wgOut->element('Translated', true);
$wgOut->element('%', true);
$wgOut->element('Obsolete', true);
$wgOut->element('%', true);
$allGroups = MessageGroups::singleton()->getGroups();

// Get list of valid groups
foreach ( $reqGroups as $id ) {
	// Page translation group ids use spaces which are not nice on command line
	$id = str_replace( '_', ' ', $id );
	if ( isset( $allGroups[$id] ) ) {
		$groups[$id] = $allGroups[$id];
	} else {
		STDERR( "Unknown group: $id" );
	}
}

if ( $wmfscore ) {
	// Override/set parameters
	$out = new csvStatsOutput();
	$reportScore = true;

	$weights = array();
	foreach ( $localisedWeights['wikimedia'] as $weight ) {
		$weights[] = $weight;
	}
	$wmfscores = array();
}

if ( !count( $groups ) ) {
	showUsage();
}

// List of all languages.
$languages = Language::getLanguageNames( false );