X-Git-Url: http://git.roojs.org/?p=roojs1;a=blobdiff_plain;f=buildSDK%2Fless-bootstrap-compiler.php;h=be9fce7fadbc43b830181d8d07d1a02d21683c25;hp=7b29a2741b7b3dcf4a0ec31e80401c69a69a3555;hb=refs%2Fheads%2Fwip_alan_T6201_Category_select;hpb=e9451789cf5c8c534b5df3881cc12dd056dbbbe2 diff --git a/buildSDK/less-bootstrap-compiler.php b/buildSDK/less-bootstrap-compiler.php index 7b29a2741b..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; } @@ -19,65 +20,113 @@ $files = array( "{$rootDir}/roojs1/less/bootstrap/bootstrap.less" => array( 'baseDir' => "{$rootDir}/roojs1/css-bootstrap", 'name' => 'bootstrap.css', - 'minify' => 'bootstrap.min.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' + 'minify' => 'roojs-bootstrap.css', + 'sourceMapRootpath' => '../less/roojs-bootstrap/', + 'variables' => array("@import '../bootstrap/variables.less';") ) ); -require_once 'HTML/Less.php'; - -$less = new HTML_Less(); - foreach ($files as $src => $file){ - - if(!file_exists($src)){ - echo "{$less} does not exist...\n"; + + $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; + } - try { - - $css = "{$file['baseDir']}/{$file['name']}"; - - echo "Compiling - {$src} To {$css}\n"; - - $less->compileFile($src, $css); + $less = "{$dir}{$f}"; - } catch (Exception $ex) { - echo "lessphp fatal error: {$ex->getMessage()}\n"; + if(filemtime($less) > filemtime($css)){ + $isLatest = false; + break; + } + } + + if($isLatest){ + echo "{$css} already up-to-date \n"; + unset($files[$src]); } } -require_once 'HTML/CSS/Minify.php'; +require_once 'HTML/Less.php'; foreach ($files as $src => $file){ - - $css = "{$file['baseDir']}/{$file['name']}"; - - if(!file_exists($css)){ - echo "{$css} does not exist...\n"; + + if(!file_exists($src)){ + echo "{$less} does not exist...\n"; continue; } try { + $less = new HTML_Less(); + + $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']}"; + + echo "Compiling - {$src} To {$css}\n"; + + $less->compileFile($src, $css); + $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