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);
 | 
						|
				}
 | 
						|
			}
 | 
						|
		});
 | 
						|
	});
 | 
						|
});
 |