/**
*/
public function minify()
{
if (!is_executable($this->_opts['java']) || !is_readable($this->_opts['closure'])) {
$this->_opts['logger']->log('The java path or Closure location can not be accessed.', Horde_Log::ERR);
return parent::minify();
}
/* --warning_level QUIET - closure default is "DEFAULT" which will
* cause code with compiler warnings to output bad js (see Bug
* #13789) */
$cmd = trim(escapeshellcmd($this->_opts['java']) . ' -jar ' . escapeshellarg($this->_opts['closure']) . ' --warning_level QUIET');
if (isset($this->_opts['sourcemap']) && is_array($this->_data)) {
$this->_sourcemap = Horde_Util::getTempFile();
$cmd .= ' --create_source_map ' . escapeshellarg($this->_sourcemap) . ' --source_map_format=V3';
$suffix = "\n//# sourceMappingURL=" . $this->_opts['sourcemap'];
} else {
$suffix = '';
}
if (isset($this->_opts['cmdline'])) {
$cmd .= ' ' . trim($this->_opts['cmdline']);
}
if (is_array($this->_data)) {
$js = '';
foreach ($this->_data as $val) {
$cmd .= ' ' . $val;
}
} else {
$js = $this->_data;
}
$cmdline = new Horde_JavascriptMinify_Util_Cmdline();
return $cmdline->runCmd($js, $cmd, $this->_opts['logger']) . $suffix . $this->_sourceUrls();
}