43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
// load libraries
|
|
var fs = require("fs");
|
|
var path = require("path");
|
|
var less = require("less");
|
|
|
|
// collect files
|
|
var folders = ["../android", "../blackberry", "../iphone", "../custom"];
|
|
var files = [];
|
|
folders.forEach(function(folder){
|
|
files = files.concat(fs.readdirSync(folder).map(function(file){
|
|
return folder + "/" + file;
|
|
}));
|
|
});
|
|
files = files.filter(function(file){
|
|
return file && /\.less$/.test(file) && !/variables\.less$/.test(file);
|
|
});
|
|
|
|
// compile files
|
|
files.forEach(function(file){
|
|
console.log("compiling " + file);
|
|
fs.readFile(file, "utf-8", function(error, data){
|
|
if(error){
|
|
console.error(error.message);
|
|
process.exit(1);
|
|
}
|
|
var parser = new(less.Parser)({paths: [path.dirname(file)], filename: file, optimization: 1});
|
|
parser.parse(data, function(error, tree){
|
|
if(error){
|
|
less.writeError(error);
|
|
process.exit(1);
|
|
}
|
|
try{
|
|
var css = tree.toCSS({compress: false});
|
|
var fd = fs.openSync(file.replace(".less", ".css"), "w");
|
|
fs.writeSync(fd, css, 0, "utf-8");
|
|
}catch(error){
|
|
less.writeError(error);
|
|
process.exit(2);
|
|
}
|
|
});
|
|
});
|
|
});
|