53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // Script to process all the less files and convert them to CSS files
 | |
| // Run from themes/dijit/claro like:
 | |
| //
 | |
| //	$ node compile.js
 | |
| 
 | |
| var fs = require('fs'),		// file system access
 | |
| 	path = require('path'),	// get directory from file name
 | |
| 	less = require('../../../util/less');	// less processor
 | |
| 
 | |
| var options = {
 | |
| 	compress: false,
 | |
| 	optimization: 1,
 | |
| 	silent: false
 | |
| };
 | |
| 
 | |
| var allFiles = [].concat(
 | |
| 		fs.readdirSync("."),
 | |
| 		fs.readdirSync("form").map(function(fname){ return "form/"+fname; }),
 | |
| 		fs.readdirSync("layout").map(function(fname){ return "layout/"+fname; })
 | |
| 	),
 | |
| 	lessFiles = allFiles.filter(function(name){ return name && name != "variables.less" && /\.less$/.test(name); });
 | |
| 
 | |
| lessFiles.forEach(function(fname){
 | |
| 	console.log("=== " + fname);
 | |
| 	fs.readFile(fname, 'utf-8', function(e, data){
 | |
| 		if(e){
 | |
| 			console.error("lessc: " + e.message);
 | |
| 			process.exit(1);
 | |
| 		}
 | |
| 
 | |
| 		new(less.Parser)({
 | |
| 			paths: [path.dirname(fname)],
 | |
| 			optimization: options.optimization,
 | |
| 			filename: fname
 | |
| 		}).parse(data, function(err, tree){
 | |
| 			if(err){
 | |
| 				less.writeError(err, options);
 | |
| 				process.exit(1);
 | |
| 			}else{
 | |
| 				try{
 | |
| 					var css = tree.toCSS({ compress: options.compress }),
 | |
| 						outputFname = fname.replace('.less', '.css');
 | |
| 					var fd = fs.openSync(outputFname, "w");
 | |
| 					fs.writeSync(fd, css, 0, "utf8");
 | |
| 				}catch(e){
 | |
| 					less.writeError(e, options);
 | |
| 					process.exit(2);
 | |
| 				}
 | |
| 			}
 | |
| 		});
 | |
| 	});
 | |
| });
 |