/**
* Generate and save the cached file for a build target.
*
* @param \MiniAsset\Factory $factory The factory class.
* @param \MiniAsset\AssetTarget $build The build target.
* @return void
*/
protected function _buildTarget($factory, $build)
{
$writer = $factory->writer();
$compiler = $factory->cachedCompiler();
$name = $writer->buildFileName($build);
if ($writer->isFresh($build) && !$this->cli->arguments->defined('force')) {
$this->verbose('<light_blue>Skip building</light_blue> ' . $name . ' existing file is still fresh.', 'S');
return;
}
$writer->invalidate($build);
$name = $writer->buildFileName($build);
try {
$contents = $compiler->generate($build);
$writer->write($build, $contents);
$this->verbose('<green>Saved file</green> for ' . $name, '.');
} catch (Exception $e) {
$this->cli->err('<red>Error:</red> ' . $e->getMessage());
}
}