]>
Commit | Line | Data |
---|---|---|
81bea17a AD |
1 | /* |
2 | Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved. | |
3 | Available via Academic Free License >= 2.1 OR the modified BSD license. | |
4 | see: http://dojotoolkit.org/license for details | |
5 | */ | |
6 | ||
7 | ||
8 | // Script to process all the less files and convert them to CSS files | |
9 | // Run from themes/dijit/claro like: | |
10 | // | |
11 | // $ node compile.js | |
12 | ||
13 | // Some guesses for where to find less | |
14 | require.paths.unshift('/opt/less/lib', 'C:/less/lib'); | |
15 | ||
16 | var fs = require('fs'), // file system access | |
17 | path = require('path'), // get directory from file name | |
18 | less = require('less'); // less processor | |
19 | ||
20 | var options = { | |
21 | compress: false, | |
22 | optimization: 1, | |
23 | silent: false | |
24 | }; | |
25 | ||
26 | var allFiles = [].concat( | |
27 | fs.readdirSync("."), | |
28 | fs.readdirSync("form").map(function(fname){ return "form/"+fname; }), | |
29 | fs.readdirSync("layout").map(function(fname){ return "layout/"+fname; }) | |
30 | ), | |
31 | lessFiles = allFiles.filter(function(name){ return name && name != "variables.less" && /\.less$/.test(name); }); | |
32 | ||
33 | lessFiles.forEach(function(fname){ | |
34 | console.log("=== " + fname); | |
35 | fs.readFile(fname, 'utf-8', function (e, data){ | |
36 | if(e){ | |
37 | console.error("lessc: " + e.message); | |
38 | process.exit(1); | |
39 | } | |
40 | ||
41 | new(less.Parser)({ | |
42 | paths: [path.dirname(fname)], | |
43 | optimization: options.optimization, | |
44 | filename: fname | |
45 | }).parse(data, function(err, tree){ | |
46 | if(err){ | |
47 | less.writeError(err, options); | |
48 | process.exit(1); | |
49 | }else{ | |
50 | try{ | |
51 | var css = tree.toCSS({ compress: options.compress }), | |
52 | outputFname = fname.replace('.less', '.css'); | |
53 | fd = fs.openSync(outputFname, "w"); | |
54 | fs.writeSync(fd, css, 0, "utf8"); | |
55 | }catch(e){ | |
56 | less.writeError(e, options); | |
57 | process.exit(2); | |
58 | } | |
59 | } | |
60 | }); | |
61 | }); | |
62 | }); |