UNPKG

morbo-cli

Version:

… All tech debt is vermin in the eyes of Morbo!

84 lines (74 loc) 1.74 kB
/* eslint-disable no-console */ import fs from 'fs-extra'; import minimist from 'minimist'; import morbo from '../src'; import pkg from '../package.json'; import defaultOptions, { Options } from '../src/lib/defaultOptions'; function help() { return ` Usage:\n\ \n\ morbo [options] [file|glob ...]\n\ \n\ Options:\n\ \n\ -h, --help output usage information\n\ -v, --version output version\n\ \n\ Configuration:\n\ Create a .morborc file in the root directory of your project\n\ \n\ // Defaults\n\ {\n\ customDefinitions: {}, fileEncoding: 'utf8', filesToScan: ['**/*.{js,php,go}'], lineLengthLimit: 1000, ignoredDirectories: [ '**/node_modules/**', '.git/**', '.hg/**', '**/flow-typed/**', '**/morbo_report/**', 'build/**', 'dist/**', 'config/**', ], morboServerUri: 'URI_TO_MORBO_SERVER', projectId: 'YOUR_MORBO_PROJECT_ID', openReportOnCompletion: false, scanPath: process.cwd(), sendReportOnCompletion: false, showGitBlame: true, showSkippedChecks: false, skipChecks: [], }\n\ \n\ `; } const argv = minimist(process.argv.slice(2)); if (argv.version || argv.v) { console.log(pkg.version); process.exit(); } if (argv.help || argv.h) { console.log(help()); process.exit(); } let options: Options = defaultOptions; // Read options from .morborc try { const config = fs.readFileSync('.morborc', 'utf8'); options = { ...JSON.parse(config) }; } catch (err) { if (err.message.match(/no such file or directory/)) { console.log('No .morborc file, using default settings'); } else { console.log(err); } } const scanPath = argv._; if (scanPath.length > 0) { options.scanPath = scanPath.join(','); } morbo(options);