/**
* 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->compiler();
$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 {
$this->verbose('<green>Saving file</green> for ' . $name, '.');
$contents = $compiler->generate($build);
$writer->write($build, $contents);
} catch (Exception $e) {
$this->cli->err('Error: ' . $e->getMessage());
}
}