/** * @see sfTask */ protected function execute($arguments = array(), $options = array()) { // Remove old CSS files if --clean option specified if (isset($options['clean']) && $options['clean']) { foreach (sfLessPhp::findCssFiles() as $cssFile) { if (!isset($arguments['file']) || false !== strpos($cssFile, $arguments['file'] . '.css')) { unlink($cssFile); $this->logSection('removed', str_replace(sfLessPhp::getCssPaths(), '', $cssFile)); } } } // Inits sfLessPhp instance for compilation help $lessHelper = new sfLessPhp(false, isset($options['lessc']) && $options['lessc'], false, isset($options['compress']) && $options['compress']); // Outputs debug info if (isset($options['debug']) && $options['debug']) { foreach ($lessHelper->getDebugInfo() as $key => $value) { $this->logSection('debug', sprintf("%s:\t%s", $key, $value), null, 'INFO'); } } // Compiles LESS files foreach (sfLessPhp::findLessFiles() as $lessFile) { if (!isset($arguments['file']) || false !== strpos($lessFile, $arguments['file'] . '.less')) { if ($lessHelper->compile($lessFile)) { if (isset($options['debug']) && $options['debug']) { $this->logSection('compiled', sprintf("%s => %s", sfLessPhp::getProjectRelativePath($lessFile), sfLessPhp::getProjectRelativePath(sfLessPhp::getCssPathOfLess($lessFile))), null, 'COMMAND'); } else { $this->logSection('compiled', str_replace(sfLessPhp::getLessPaths(), '', $lessFile), null, 'COMMAND'); } } } } }
/** * Returns configuration information for LESS compiler * * @return string */ protected function getConfigurationContent() { $debugInfo = '<dl id="less_debug" style="display: none;">'; $lessHelper = new sfLessPhp(); foreach ($lessHelper->getDebugInfo() as $name => $value) { $debugInfo .= sprintf('<dt style="float:left; width: 100px"><strong>%s:</strong></dt> <dd>%s</dd>', $name, $value); } $debugInfo .= '</dl>'; return sprintf(<<<EOF <h2>configuration %s</h2> %s<br/> EOF , $this->getToggler('less_debug', 'Toggle debug info'), $debugInfo); }