UNPKG

jscpd

Version:

Copy/paste detector for programming code, support JavaScript, CoffeeScript, PHP, Ruby, Python, Less, Go, Java, Yaml, C#, C++, C, Puppet, Twig languages

50 lines 6.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var safe_1 = require("colors/safe"); var commander_1 = require("commander"); var _1 = require("."); var blamer_1 = require("./hooks/post/blamer"); var formats_1 = require("./tokenizer/formats"); var options_1 = require("./utils/options"); var packageJson = require(__dirname + '/../package.json'); exports.cli = new commander_1.Command(packageJson.name) .version(packageJson.version) .usage('[options] <path ...>') .description(packageJson.description); exports.cli.option('-l, --min-lines [number]', 'min size of duplication in code lines (Default is ' + options_1.getOption('minLines') + ')'); exports.cli.option('-x, --max-lines [number]', 'max size of source in lines (Default is ' + options_1.getOption('maxLines') + ')'); exports.cli.option('-z, --max-size [string]', 'max size of source in bytes, examples: 1kb, 1mb, 120kb (Default is ' + options_1.getOption('maxSize') + ')'); exports.cli.option('-t, --threshold [number]', 'threshold for duplication, in case duplications >= threshold jscpd will exit with error'); exports.cli.option('-c, --config [string]', 'path to config file (Default is .cpd.json in <path>)'); exports.cli.option('-i, --ignore [string]', 'glob pattern for files what should be excluded from duplication detection'); exports.cli.option('-r, --reporters [string]', 'reporters or list of reporters separated with coma to use (Default is time,console)'); exports.cli.option('-o, --output [string]', 'reporters to use (Default is ./report/)'); exports.cli.option('-m, --mode [string]', 'mode of quality of search, can be "strict", "mild" and "weak" (Default is "' + options_1.getOption('mode') + '")'); exports.cli.option('-f, --format [string]', 'format or formats separated by coma (Example php,javascript,python)'); exports.cli.option('-b, --blame', 'blame authors of duplications (get information about authors from git)'); exports.cli.option('-s, --silent', 'do not write detection progress and result to a console'); exports.cli.option('-a, --absolute', 'use absolute path in reports'); exports.cli.option('-g, --gitignore', 'ignore all files from .gitignore file'); exports.cli.option('--formats-exts [string]', 'list of formats with file extensions (javascript:es,es6;dart:dt)'); // cli.option('--cache', 'Cache results of duplication detection'); exports.cli.option('-d, --debug', 'show debug information(options list and selected files)'); exports.cli.option('--list', 'show list of total supported formats'); exports.cli.option('--xsl-href [string]', '(Deprecated) Path to xsl file'); exports.cli.option('-p, --path', '(Deprecated) Path to repo, use `jscpd <path>`'); exports.cli.parse(process.argv); var options = options_1.prepareOptions(exports.cli); if (exports.cli.list) { console.log(safe_1.bold(safe_1.white('Supported formats: '))); console.log(formats_1.getSupportedFormats().join(', ')); process.exit(0); } if (exports.cli.debug) { console.log(safe_1.bold(safe_1.white('Options:'))); console.dir(options); } var cpd = new _1.JSCPD(options); if (cpd.options.blame) { cpd.attachPostHook(new blamer_1.BlamerPostHook()); } cpd.detectInFiles(options.path); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG9DQUEwQztBQUMxQyx1Q0FBb0M7QUFDcEMsc0JBQW9DO0FBQ3BDLDhDQUFxRDtBQUNyRCwrQ0FBMEQ7QUFDMUQsMkNBQTREO0FBRTVELElBQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxTQUFTLEdBQUcsa0JBQWtCLENBQUMsQ0FBQztBQUUvQyxRQUFBLEdBQUcsR0FBWSxJQUFJLG1CQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztLQUN0RCxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztLQUM1QixLQUFLLENBQUMsc0JBQXNCLENBQUM7S0FDN0IsV0FBVyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUV4QyxXQUFHLENBQUMsTUFBTSxDQUNSLDBCQUEwQixFQUMxQixvREFBb0QsR0FBRyxtQkFBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsQ0FDbkYsQ0FBQztBQUNGLFdBQUcsQ0FBQyxNQUFNLENBQUMsMEJBQTBCLEVBQUUsMENBQTBDLEdBQUcsbUJBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUNqSCxXQUFHLENBQUMsTUFBTSxDQUNSLHlCQUF5QixFQUN6QixxRUFBcUUsR0FBRyxtQkFBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsQ0FDbkcsQ0FBQztBQUNGLFdBQUcsQ0FBQyxNQUFNLENBQ1IsMEJBQTBCLEVBQzFCLHlGQUF5RixDQUMxRixDQUFDO0FBQ0YsV0FBRyxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxzREFBc0QsQ0FBQyxDQUFDO0FBQzVGLFdBQUcsQ0FBQyxNQUFNLENBQUMsdUJBQXVCLEVBQUUsMkVBQTJFLENBQUMsQ0FBQztBQUNqSCxXQUFHLENBQUMsTUFBTSxDQUNSLDBCQUEwQixFQUMxQixxRkFBcUYsQ0FDdEYsQ0FBQztBQUNGLFdBQUcsQ0FBQyxNQUFNLENBQUMsdUJBQXVCLEVBQUUseUNBQXlDLENBQUMsQ0FBQztBQUMvRSxXQUFHLENBQUMsTUFBTSxDQUNSLHFCQUFxQixFQUNyQiw2RUFBNkUsR0FBRyxtQkFBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FDekcsQ0FBQztBQUNGLFdBQUcsQ0FBQyxNQUFNLENBQUMsdUJBQXVCLEVBQUUscUVBQXFFLENBQUMsQ0FBQztBQUMzRyxXQUFHLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSx3RUFBd0UsQ0FBQyxDQUFDO0FBQ3BHLFdBQUcsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLHlEQUF5RCxDQUFDLENBQUM7QUFDdEYsV0FBRyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSw4QkFBOEIsQ0FBQyxDQUFDO0FBQzdELFdBQUcsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsdUNBQXVDLENBQUMsQ0FBQztBQUN2RSxXQUFHLENBQUMsTUFBTSxDQUFDLHlCQUF5QixFQUFFLGtFQUFrRSxDQUFDLENBQUM7QUFDMUcsbUVBQW1FO0FBQ25FLFdBQUcsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLHlEQUF5RCxDQUFDLENBQUM7QUFDckYsV0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsc0NBQXNDLENBQUMsQ0FBQztBQUU3RCxXQUFHLENBQUMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLCtCQUErQixDQUFDLENBQUM7QUFDbkUsV0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsK0NBQStDLENBQUMsQ0FBQztBQUUxRSxXQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUV4QixJQUFNLE9BQU8sR0FBYSx3QkFBYyxDQUFDLFdBQUcsQ0FBQyxDQUFDO0FBRTlDLElBQUksV0FBRyxDQUFDLElBQUksRUFBRTtJQUNaLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBSSxDQUFDLFlBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRCxPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUFtQixFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUNqQjtBQUVELElBQUksV0FBRyxDQUFDLEtBQUssRUFBRTtJQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBSSxDQUFDLFlBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztDQUN0QjtBQUVELElBQU0sR0FBRyxHQUFVLElBQUksUUFBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRXRDLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7SUFDckIsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLHVCQUFjLEVBQUUsQ0FBQyxDQUFDO0NBQzFDO0FBRUQsR0FBRyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMifQ==