ember-cli-ajh
Version:
Command line tool for developing ambitious ember.js apps
42 lines (37 loc) • 1.27 kB
JavaScript
;
var fs = require('fs');
var path = require('path');
var Plugin = require('broccoli-plugin');
function copyPreserveSync (src, dest) {
var srcStats = fs.statSync(src);
if (srcStats.isFile()) {
var destDir = path.dirname(dest);
var dirs = [];
while (destDir && !fs.existsSync(destDir)) {
dirs.unshift(destDir);
destDir = path.dirname(destDir);
}
dirs.forEach(function (dir) {
fs.mkdirSync(dir);
});
var content = fs.readFileSync(src);
fs.writeFileSync(dest, content, { flag: 'wx' });
fs.utimesSync(dest, srcStats.atime, srcStats.mtime);
} else {
throw new Error('Unexpected file type for ' + src);
}
}
module.exports = SassCompiler;
SassCompiler.prototype = Object.create(Plugin.prototype);
SassCompiler.prototype.constructor = SassCompiler;
function SassCompiler (inputNodes, inputFile, outputFile, options) {
if (!(this instanceof SassCompiler)) return new SassCompiler(inputNodes, inputFile, outputFile, options);
Plugin.call(this, inputNodes);
this.inputFile = inputFile;
this.outputFile = outputFile;
}
SassCompiler.prototype.build = function () {
copyPreserveSync(
path.join(this.inputPaths[0], this.inputFile),
path.join(this.outputPath, this.outputFile));
};