d6003ee0ab
This exactly reproduces the output tree from one of the gulp tasks, which is now removed. Next step is to migrate another sibling task to broccoli.
50 lines
1.8 KiB
JavaScript
50 lines
1.8 KiB
JavaScript
var util = require('./util');
|
|
var file2moduleName = require('./file2modulename');
|
|
var through2 = require('through2');
|
|
var path = require('path');
|
|
var fs = require('fs');
|
|
var VinylFile = require('vinyl');
|
|
|
|
// used for generating html files and bootstrapping benchmarks and examples
|
|
module.exports = function(gulp, plugins, config) {
|
|
return function() {
|
|
return gulp.src(config.src)
|
|
.pipe(util.insertSrcFolder(plugins, config.srcFolderInsertion, config.modulesFolder))
|
|
.pipe(through2.obj(function(file, enc, done) {
|
|
var fileName = file.relative;
|
|
var moduleName = file2moduleName(fileName);
|
|
var moduleNameWithoutPath = path.basename(moduleName);
|
|
var self = this;
|
|
var scripts = util.filterByFile(config.scriptsPerFolder, fileName).map(function(script) {
|
|
var scriptTag;
|
|
var scriptSrc = script.src;
|
|
if (script.copy || script.copyOnly) {
|
|
scriptSrc = path.basename(script.src);
|
|
self.push(new VinylFile({
|
|
cwd: file.cwd,
|
|
base: file.base,
|
|
path: path.join(path.dirname(file.path), scriptSrc),
|
|
contents: fs.readFileSync(script.src)
|
|
}));
|
|
};
|
|
if (script.copyOnly) {
|
|
return '';
|
|
}
|
|
if (scriptSrc) {
|
|
scriptTag = '<script src="'+scriptSrc+'" type="'+script.mimeType+'"></script>';
|
|
} else {
|
|
scriptTag = '<script type="'+script.mimeType+'">'+script.inline+'</script>';
|
|
}
|
|
return scriptTag
|
|
.replace('$MODULENAME_WITHOUT_PATH$', moduleNameWithoutPath)
|
|
.replace('$MODULENAME$', moduleName)
|
|
}).join('\n');
|
|
file.contents = new Buffer(file.contents.toString().replace('$SCRIPTS$', scripts));
|
|
this.push(file);
|
|
done();
|
|
}))
|
|
.pipe(gulp.dest(config.dest));
|
|
};
|
|
};
|
|
|