}
$fontSizesFile = fopen_utf8("data/fontSizes.csv", $existingFontSizeDB ? 'a' : 'w');
if (!$fontSizesFile) {
    error("Unable to write CSV file: data/fontSizes.csv");
}
$config['output.card.set.directories'] = true;
$config['card.flavor.random'] = false;
$writer = new ImageWriter();
$writer->setOutputType(false, false);
echo "Building cache...\n";
foreach ($writer->cardDB->getAllCardTitles() as $title) {
    if ($existingFontSizeDB && $existingFontSizeDB->hasCard($title)) {
        continue;
    }
    $writer->fontSizeDB->reset();
    $writer->addCardByTitle($title);
    foreach ($writer->renderers as $renderer) {
        $renderer->render();
    }
    $fontSizes = $writer->fontSizeDB->getSizes($title);
    if ($fontSizes) {
        foreach ($fontSizes as $hash => $size) {
            writeCsvRow($fontSizesFile, array((string) $title, (string) $hash, (string) $size));
        }
    } else {
        writeCsvRow($fontSizesFile, array((string) $title));
    }
    $writer->reset();
}
fclose($fontSizesFile);
echo "Import complete.\n";