control-freak-ide/Code/client/tasks/updateSamples.js
plastic-hub-dev-node-saturn 538369cff7 latest
2021-05-12 18:35:18 +02:00

48 lines
1.3 KiB
JavaScript

module.exports = function (grunt) {
"use strict";
// Update samples
function buildSamples(content, dir) {
var scriptRE = /(<script[^>]*>)(\s*require\s*\(\s*\[[\s\S]*?)(<\/script>)/ig;
return content.replace(scriptRE, function (match, openTag, content, closeTag) {
return openTag + "\n" +
"\trequire([\"" + dir + "/layer\"], function(){" + content + "\n\t});\n\t" + closeTag;
});
}
grunt.registerTask("updateSamples", function (buildCfg, outdir) {
var name =this.name;
var buildConfig = grunt.config(buildCfg);
var layers = buildConfig.layers;
// Get processed packages
var builtLibs = layers.map(function (layer) {
return layer.name.match(/^(.*)\/[^\/]*$/)[1];
});
// Update bower.json
builtLibs.forEach(function (lib, index) {
var config = grunt.config([name, lib, "samples"]);
var samples = grunt.file.expand({
dot: true,
filter: "isFile",
cwd: lib
}, (config && config.src) || "samples/**/*");
samples.forEach(function (path) {
var orig = lib + "/" + path;
var dest = outdir + lib + "/" + path;
grunt.file.copy(orig, dest, {
noProcess: ["**/*.png", "**/*.js", "**/*.less", "**/*.css"],
process: function (content) {
return buildSamples(content, lib + "-build");
}
});
});
});
});
};