]>
Commit | Line | Data |
---|---|---|
1 | // Script to process all the less files and convert them to CSS files | |
2 | // Run from themes/dijit/claro like: | |
3 | // | |
4 | // $ node compile.js | |
5 | ||
6 | var fs = require('fs'), // file system access | |
7 | path = require('path'), // get directory from file name | |
8 | less = require('../../../util/less/lib/less'); // less processor | |
9 | ||
10 | var options = { | |
11 | compress: false, | |
12 | optimization: 1, | |
13 | silent: false | |
14 | }; | |
15 | ||
16 | var allFiles = [].concat( | |
17 | fs.readdirSync("."), | |
18 | fs.readdirSync("form").map(function(fname){ return "form/"+fname; }), | |
19 | fs.readdirSync("layout").map(function(fname){ return "layout/"+fname; }) | |
20 | ), | |
21 | lessFiles = allFiles.filter(function(name){ return name && name != "variables.less" && /\.less$/.test(name); }); | |
22 | ||
23 | lessFiles.forEach(function(fname){ | |
24 | console.log("=== " + fname); | |
25 | fs.readFile(fname, 'utf-8', function(e, data){ | |
26 | if(e){ | |
27 | console.error("lessc: " + e.message); | |
28 | process.exit(1); | |
29 | } | |
30 | ||
31 | new(less.Parser)({ | |
32 | paths: [path.dirname(fname)], | |
33 | optimization: options.optimization, | |
34 | filename: fname | |
35 | }).parse(data, function(err, tree){ | |
36 | if(err){ | |
37 | less.writeError(err, options); | |
38 | process.exit(1); | |
39 | }else{ | |
40 | try{ | |
41 | var css = tree.toCSS({ compress: options.compress }), | |
42 | outputFname = fname.replace('.less', '.css'); | |
43 | var fd = fs.openSync(outputFname, "w"); | |
44 | fs.writeSync(fd, css, 0, "utf8"); | |
45 | }catch(e){ | |
46 | less.writeError(e, options); | |
47 | process.exit(2); | |
48 | } | |
49 | } | |
50 | }); | |
51 | }); | |
52 | }); |