UNPKG

ember-cli-ajh

Version:

Command line tool for developing ambitious ember.js apps

42 lines (37 loc) 1.27 kB
'use strict'; 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)); };