buildSDK/less-bootstrap-compiler.php
[roojs1] / buildSDK / less-bootstrap-compiler.php
1 <?php
2
3 $cwd = getcwd();
4
5 if (array_pop(explode('/', $cwd)) !== 'roojs1') {
6     echo "this should be run in roojs1 directory...\n";
7     exit;
8 }
9
10 ini_set('include_path', 
11     dirname(__FILE__) . '/../:' .
12     dirname(__FILE__) . '/../../pear:' .
13     ini_get('include_path')
14 );
15
16 $rootDir = dirname(__FILE__) . '/../..';
17
18 $files = array(
19     "{$rootDir}/roojs1/less/bootstrap/bootstrap.less" => array(
20         'baseDir' => "{$rootDir}/roojs1/css-bootstrap",
21         'name' => 'bootstrap.css',
22         'minify' => 'bootstrap.min.css',
23         'sourceMapRootpath' => '../less/bootstrap/',
24         'variables' => array("@import 'variables.less';")
25     ),
26     "{$rootDir}/roojs1/less/roojs-bootstrap/roojs-bootstrap.less" => array(
27         'baseDir' => "{$rootDir}/roojs1/css-bootstrap",
28         'name' => 'roojs-bootstrap-debug.css',
29         'minify' => 'roojs-bootstrap.css',
30         'sourceMapRootpath' => '../less/roojs-bootstrap/',
31         'variables' => array("@import '../bootstrap/variables.less';")
32     )
33 );
34
35 foreach ($files as $src => $file){
36     
37     $css = "{$file['baseDir']}/{$file['name']}";
38     
39     if(!file_exists($css)){
40         continue;
41     }
42     
43     $dir = "{$file['baseDir']}/{$file['sourceMapRootpath']}";
44     
45     $variable = "{$dir}variables.less";
46     
47     if(file_exists($variable)){
48         echo "exist??";
49         echo "\n";
50         
51         echo filemtime($variable);
52         
53         echo "\n";
54         
55         continue;
56     }
57     
58     echo "not exist??";
59     exit;
60     
61     if(filemtime("{$dir}variables.less") > filemtime($css)){
62         continue;
63     }
64     
65     foreach(scandir($dir) as $f) {
66                 
67         if (!strlen($f) || $f[0] == '.') {
68             continue;
69         }
70
71         $less = "{$dir}/{$f}";
72
73         if(filemtime($less) < filemtime($css)){
74             continue;
75         }
76         
77         echo "{$css} already up-to-date \n";
78         unset($files[$src]);
79
80     }
81     
82 }
83         
84 require_once 'HTML/Less.php';
85
86 foreach ($files as $src => $file){
87
88     if(!file_exists($src)){
89         echo "{$less} does not exist...\n";
90         continue;
91     }
92     
93     try {
94         
95         $less = new HTML_Less();
96         
97         $less->setOptions(array(
98             'variables' => $file['variables'],
99             'sourceMap' => true,
100             'sourceMapWriteTo' => "{$file['baseDir']}/{$file['name']}.map",
101             'sourceMapURL' => "{$file['name']}.map",
102             'sourceMapRootpath' => $file['sourceMapRootpath'],
103             'sourceMapBasepath' => dirname(realpath($src))
104         ));
105         
106         $css = "{$file['baseDir']}/{$file['name']}";
107         
108         echo "Compiling - {$src} To {$css}\n";
109         
110         $less->compileFile($src, $css);
111         
112         $min = "{$file['baseDir']}/{$file['minify']}";
113         
114         $less = new HTML_Less();
115         
116         $less->setOptions(array(
117             'compress' => true,
118             'variables' => $file['variables'],
119             'sourceMap' => true,
120             'sourceMapWriteTo' => "{$file['baseDir']}/{$file['minify']}.map",
121             'sourceMapURL' => "{$file['minify']}.map",
122             'sourceMapRootpath' => $file['sourceMapRootpath'],
123             'sourceMapBasepath' => dirname(realpath($src))
124         ));
125         
126         echo "Minifing - {$src} To {$min}\n";
127         
128         $less->compileFile($src, $min);
129         
130     } catch (Exception $ex) {
131         echo "lessphp fatal error: {$ex->getMessage()}\n";
132     }
133     
134 }