5 $cc = explode('/', $cwd);
6 if (array_pop($cc) !== 'roojs1') {
7 echo "this should be run in roojs1 directory...\n";
11 ini_set('include_path',
12 dirname(__FILE__) . '/../:' .
13 dirname(__FILE__) . '/../../pear:' .
14 ini_get('include_path')
17 $rootDir = dirname(__FILE__) . '/../..';
20 "bootstrap.scss" => array(
21 "scssDir" => "{$rootDir}/roojs1/scss/bootstrap",
22 'baseDir' => "{$rootDir}/roojs1/css-bootstrap4",
23 'name' => 'bootstrap.css',
24 'minify' => 'bootstrap.min.css',
25 'sourceMapRootpath' => '../scss/bootstrap/',
26 // 'variables' => array("@import 'variables.less';")
29 "{$rootDir}/roojs1/less/roojs-bootstrap/roojs-bootstrap.less" => array(
30 'baseDir' => "{$rootDir}/roojs1/css-bootstrap",
31 'name' => 'roojs-bootstrap-debug.css',
32 'minify' => 'roojs-bootstrap.css',
33 'sourceMapRootpath' => '../less/roojs-bootstrap/',
34 'variables' => array("@import '../bootstrap/variables.less';")
39 foreach ($files as $src => $file){
41 $css = "{$file['baseDir']}/{$file['name']}";
43 if(!file_exists($css)){
47 $dir = "{$file['baseDir']}/{$file['sourceMapRootpath']}";
49 $variable = "{$dir}variables.less";
51 if(file_exists($variable) && filemtime("{$dir}variables.less") > filemtime($css)){
57 foreach(scandir($dir) as $f) {
59 if (!strlen($f) || $f[0] == '.') {
65 if(filemtime($less) > filemtime($css)){
72 echo "{$css} already up-to-date \n";
78 require_once 'HTML/Scss.php';
80 foreach ($files as $src => $file){
82 if(!file_exists($file['scssDir'].'/'. $src)){
83 echo "{$file['scssDir']}/{$src} does not exist...\n";
89 $scss = new HTML_Scss();
91 $scss->setSourceMap(1);
92 $scss->setSourceMapOptions(array(
93 'sourceRoot' => $file['sourceMapRootpath'],
95 // an optional name of the generated code that this source map is associated with.
96 'sourceMapFilename' => "{$file['baseDir']}/{$file['name']}.map",
99 'sourceMapURL' => "{$file['name']}.map",
101 // absolute path to a file to write the map to
102 'sourceMapWriteTo' => "{$file['baseDir']}/{$file['name']}.map",
104 // output source contents?
105 'outputSourceFiles' => false,
107 // base path for filename normalization
108 'sourceMapRootpath' => '',
110 // base path for filename normalization
111 'sourceMapBasepath' => ''
116 $css = "{$file['baseDir']}/{$file['name']}";
118 echo "Compiling - {$src} To {$css}\n";
120 $scss->setImportPaths($file['scssDir']);
121 $scss->setFormater('Compact');
123 file_put_contents($scss->compile("@import \"{$src}\";"), $css);
126 $min = "{$file['baseDir']}/{$file['minify']}";
128 $less = new HTML_Less();
130 $less->setOptions(array(
132 'variables' => $file['variables'],
134 'sourceMapWriteTo' => "{$file['baseDir']}/{$file['minify']}.map",
135 'sourceMapURL' => "{$file['minify']}.map",
136 'sourceMapRootpath' => $file['sourceMapRootpath'],
137 'sourceMapBasepath' => dirname(realpath($src))
140 echo "Minifing - {$src} To {$min}\n";
142 $scss->setFormater('Crunched');
144 file_put_contents($scss->compile("@import \"{$src}\";"), $min);
145 } catch (Exception $ex) {
146 echo "scss fatal error: {$ex->getMessage()}\n";