diff --git a/lib/cli.js b/lib/cli.js index c34545544b10..7d23bc9bc411 100644 --- a/lib/cli.js +++ b/lib/cli.js @@ -18,6 +18,7 @@ const fs = require("fs"), path = require("path"), mkdirp = require("mkdirp"), + envinfo = require("envinfo"), { CLIEngine } = require("./cli-engine"), options = require("./options"), log = require("./shared/logging"); @@ -67,7 +68,8 @@ function translateOptions(cliOptions) { fixTypes: cliOptions.fixType, allowInlineConfig: cliOptions.inlineConfig, reportUnusedDisableDirectives: cliOptions.reportUnusedDisableDirectives, - resolvePluginsRelativeTo: cliOptions.resolvePluginsRelativeTo + resolvePluginsRelativeTo: cliOptions.resolvePluginsRelativeTo, + info: cliOptions.info }; } @@ -165,7 +167,6 @@ const cli = { if (currentOptions.version) { // version from package.json log.info(`v${require("../package.json").version}`); - } else if (currentOptions.printConfig) { if (files.length) { log.error("The --print-config option must be used with exactly one file name."); @@ -182,6 +183,16 @@ const cli = { log.info(JSON.stringify(fileConfig, null, " ")); return 0; + } else if (currentOptions.info) { + log.info("\n Environment Information:-"); + envinfo + .run({ + System: ["OS", "CPU"], + Binaries: ["Node", "Yarn", "npm"], + Browsers: ["Chrome", "Edge", "Firefox", "Safari"], + npmGlobalPackages: ["eslint"] + }) + .then(log.info); } else if (currentOptions.help || (!files.length && !useStdin)) { log.info(options.generateHelp()); diff --git a/lib/options.js b/lib/options.js index be4c09b8eabb..d5c16322399a 100644 --- a/lib/options.js +++ b/lib/options.js @@ -246,6 +246,12 @@ module.exports = optionator({ option: "print-config", type: "path::String", description: "Print the configuration for the given file" + }, + { + option: "info", + alias: "i", + type: "Boolean", + description: "Print debugging information concerning the local environmet" } ] }); diff --git a/package.json b/package.json index 097466ca9c53..2c5679b2623d 100644 --- a/package.json +++ b/package.json @@ -49,6 +49,7 @@ "cross-spawn": "^6.0.5", "debug": "^4.0.1", "doctrine": "^3.0.0", + "envinfo": "^7.3.1", "eslint-scope": "^5.0.0", "eslint-utils": "^1.3.1", "eslint-visitor-keys": "^1.0.0",