X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=buildSDK%2Fless-bootstrap-compiler.php;h=be9fce7fadbc43b830181d8d07d1a02d21683c25;hb=a79418f2d639838995134f03eb135328a1039665;hp=97660eac94b1df7635a506efaf909201d1d8d705;hpb=3214468f9c59085052c00f6dd4afe70dc3d8efde;p=roojs1 diff --git a/buildSDK/less-bootstrap-compiler.php b/buildSDK/less-bootstrap-compiler.php index 97660eac94..be9fce7fad 100644 --- a/buildSDK/less-bootstrap-compiler.php +++ b/buildSDK/less-bootstrap-compiler.php @@ -2,7 +2,8 @@ $cwd = getcwd(); -if (array_pop(explode('/', $cwd)) !== 'roojs1') { +$cc = explode('/', $cwd); +if (array_pop($cc) !== 'roojs1') { echo "this should be run in roojs1 directory...\n"; exit; } @@ -20,16 +21,65 @@ $files = array( 'baseDir' => "{$rootDir}/roojs1/css-bootstrap", 'name' => 'bootstrap.css', 'minify' => 'bootstrap.min.css', + 'sourceMapRootpath' => '../less/bootstrap/', 'variables' => array("@import 'variables.less';") ), + "{$rootDir}/roojs1/less/bootstrap/bootstrap-light.less" => array( + 'baseDir' => "{$rootDir}/roojs1/css-bootstrap", + 'name' => 'bootstrap-light.css', + 'minify' => 'bootstrap-light.min.css', + 'sourceMapRootpath' => '../less/bootstrap/', + 'variables' => array("@import 'variables.less';") + ), + "{$rootDir}/roojs1/less/roojs-bootstrap/roojs-bootstrap.less" => array( 'baseDir' => "{$rootDir}/roojs1/css-bootstrap", 'name' => 'roojs-bootstrap-debug.css', 'minify' => 'roojs-bootstrap.css', + 'sourceMapRootpath' => '../less/roojs-bootstrap/', 'variables' => array("@import '../bootstrap/variables.less';") ) ); +foreach ($files as $src => $file){ + + $css = "{$file['baseDir']}/{$file['name']}"; + + if(!file_exists($css)){ + continue; + } + + $dir = "{$file['baseDir']}/{$file['sourceMapRootpath']}"; + + $variable = "{$dir}variables.less"; + + if(file_exists($variable) && filemtime("{$dir}variables.less") > filemtime($css)){ + continue; + } + + $isLatest = true; + + foreach(scandir($dir) as $f) { + + if (!strlen($f) || $f[0] == '.') { + continue; + } + + $less = "{$dir}{$f}"; + + if(filemtime($less) > filemtime($css)){ + $isLatest = false; + break; + } + } + + if($isLatest){ + echo "{$css} already up-to-date \n"; + unset($files[$src]); + } + +} + require_once 'HTML/Less.php'; foreach ($files as $src => $file){ @@ -38,12 +88,19 @@ foreach ($files as $src => $file){ echo "{$less} does not exist...\n"; continue; } - + try { $less = new HTML_Less(); - $less->setOption('variables', $this->variables); + $less->setOptions(array( + 'variables' => $file['variables'], + 'sourceMap' => true, + 'sourceMapWriteTo' => "{$file['baseDir']}/{$file['name']}.map", + 'sourceMapURL' => "{$file['name']}.map", + 'sourceMapRootpath' => $file['sourceMapRootpath'], + 'sourceMapBasepath' => dirname(realpath($src)) + )); $css = "{$file['baseDir']}/{$file['name']}"; @@ -51,37 +108,25 @@ foreach ($files as $src => $file){ $less->compileFile($src, $css); - } catch (Exception $ex) { - echo "lessphp fatal error: {$ex->getMessage()}\n"; - } - -} - -require_once 'HTML/CSS/Minify.php'; - -foreach ($files as $src => $file){ - - $css = "{$file['baseDir']}/{$file['name']}"; - - if(!file_exists($css)){ - echo "{$css} does not exist...\n"; - continue; - } - - try { - $min = "{$file['baseDir']}/{$file['minify']}"; - echo "Minifing - {$css} To {$min}\n"; + $less = new HTML_Less(); - $minify = new HTML_CSS_Minify($file['baseDir'], $file['baseDir'], array($file['name'])); - - $content = $minify->minify($file['baseDir']); - - file_put_contents($min, $content); + $less->setOptions(array( + 'compress' => true, + 'variables' => $file['variables'], + 'sourceMap' => true, + 'sourceMapWriteTo' => "{$file['baseDir']}/{$file['minify']}.map", + 'sourceMapURL' => "{$file['minify']}.map", + 'sourceMapRootpath' => $file['sourceMapRootpath'], + 'sourceMapBasepath' => dirname(realpath($src)) + )); + + echo "Minifing - {$src} To {$min}\n"; + + $less->compileFile($src, $min); } catch (Exception $ex) { - echo "Minify fatal error: {$ex->getMessage()}\n"; + echo "lessphp fatal error: {$ex->getMessage()}\n"; } - -} +} \ No newline at end of file