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