rollup-umd-scripts
Version:
CLI for rollup-umd projects
50 lines (48 loc) • 1.68 kB
JavaScript
;
/* eslint-disable no-undef, no-param-reassign, global-require, no-unused-vars, no-console, no-underscore-dangle, prefer-destructuring */
var async = require('async');
var path = require('path');
var glob = require('glob');
exports.command = 'variable <variable> [variables..]';
exports.desc = 'Replace variable(s) in {{docs,src/components}/**/*.md,*.md} (eg: `SOMETHING=value`)';
exports.builder = function (yargs) {
return yargs.option('path', {
alias: 'p',
describe: 'path',
default: process.cwd()
}).option('only-doc', {
alias: 'd',
describe: 'Replace variable(s) only in {docs,src/components}/**/*.md',
default: false
});
};
exports.handler = function (argv) {
switch (argv.path[0]) {
case '/':
break;
default:
argv.path = argv.path[1] === '/' ? path.join(process.cwd(), argv.path.slice(2)) : path.join(process.cwd(), argv.path);
break;
}
var pattern = path.join(argv.path, argv['only-doc'] ? '{docs,src/components}/**/*.md' : '{{docs,src/components}/**/*.md,*.md}');
var options = {
nonull: false
};
glob(pattern, options, function (er, files) {
files.forEach(function (file) {
async.map([].concat(argv.variable).concat(argv.variables), function (variable, cb) {
var split = variable.split('=');
var before = split[0];
before = before[0] === '$' ? before : '$' + before;
var after = split[1];
var output = file;
sedReplace(output, before, after, output, cb);
}, function (err, results) {
if (err) {
console.error('[ERROR] ' + err.message);
process.exit(1);
}
});
});
});
};