Esempio n. 1
0
 protected function compile()
 {
     $inputDir = dirname($this->inputFiles[0]);
     $outputDir = dirname($this->outputFile);
     $error = null;
     if (!file_exists($outputDir)) {
         mkdir($outputDir, 0755, true);
     }
     if ($command = self::isInstalled()) {
         $command = sprintf('%s %s %s 2>&1', $command, escapeshellarg($this->inputFiles[0]), escapeshellarg($this->outputFile));
         exec($command, $out, $code);
         if ($code) {
             $error = implode("\n", $out);
         } else {
             $code = file_get_contents($this->outputFile);
             file_put_contents($this->outputFile, AutoBuildPrefixer::addPrefixes($code));
         }
     } else {
         $error = 'Cannot found command "sassc" or "scss".';
     }
     if ($error) {
         $css = file_get_contents($this->outputFiles[0]);
         $css .= 'html:after{display:block;position:fixed;bottom:0;left:0;width:100%;padding:1em;font:12px mono;text-align:left;background:#d34;color:white;white-space:pre-wrap;content:' . str_replace('\\n', '\\00000a', json_encode($error)) . '}';
         file_put_contents($this->outputFile, $css);
     }
 }
Esempio n. 2
0
 protected function compile()
 {
     if (!class_exists('scssc')) {
         require_once __DIR__ . '/scss.inc.php';
     }
     $inputDir = dirname($this->inputFiles[0]);
     $outputDir = dirname($this->outputFile);
     $scss = new scssc();
     $scss->setFormatter('scss_formatter_compressed');
     $scss->setImportPaths($inputDir);
     if (!file_exists($outputDir)) {
         mkdir($outputDir, 0755, true);
     }
     try {
         $content = file_get_contents($this->inputFiles[0]);
         $css = $scss->compile($content);
         $css = AutoBuildPrefixer::addPrefixes($css);
     } catch (Exception $e) {
         $css = file_get_contents($this->outputFiles[0]);
         $css .= 'html:after{display:block;position:fixed;bottom:0;left:0;width:100%;padding:1em;font:14px sans;text-align:center;background:#d34;color:white;content:' . json_encode($e->getMessage()) . '}';
     }
     file_put_contents($this->outputFile, $css);
 }