$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;
}
"{$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/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']}";
+ $less = "{$dir}{$f}";
- echo "Compiling - {$src} To {$css}\n";
-
- $less->compileFile($src, $css);
-
- } 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_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