diff --git a/package-lock.json b/package-lock.json index 816d4ac9892..16826030017 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2259,6 +2259,11 @@ "dev": true, "optional": true }, + "envinfo": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.3.1.tgz", + "integrity": "sha512-GvXiDTqLYrORVSCuJCsWHPXF5BFvoWMQA9xX4YVjPT1jyS3aZEHUBwjzxU/6LTPF9ReHgVEbX7IEN5UvSXHw/A==" + }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -2311,6 +2316,18 @@ "es6-promise": "^4.0.3" } }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "~0.3.5" + } + }, "es6-symbol": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", diff --git a/package.json b/package.json index 1b636de12a0..8fcb05f8788 100644 --- a/package.json +++ b/package.json @@ -77,6 +77,8 @@ "cross-spawn": "^4.0.0", "csv-streamify": "^3.0.4", "didyoumean": "^1.2.1", + "envinfo": "^7.2.0", + "es6-set": "^0.1.4", "dotenv": "^6.1.0", "exit-code": "^1.0.2", "express": "^4.16.4", diff --git a/src/commands/index.js b/src/commands/index.js index 92bc2861df4..39fc99f9ba1 100644 --- a/src/commands/index.js +++ b/src/commands/index.js @@ -64,6 +64,7 @@ module.exports = function(client) { client.help = loadCommand("help"); client.hosting = {}; client.hosting.disable = loadCommand("hosting-disable"); + client.info = loadCommand("info"); client.init = loadCommand("init"); client.list = loadCommand("list"); client.login = loadCommand("login"); diff --git a/src/commands/info.ts b/src/commands/info.ts new file mode 100644 index 00000000000..34454e2888f --- /dev/null +++ b/src/commands/info.ts @@ -0,0 +1,27 @@ +import * as clc from "cli-color"; +/* tslint:disable */ +const envinfo = require("envinfo"); +/* tslint:enable */ +import * as logger from "../logger"; + +import * as Command from "../command"; + +export default new Command("info") + .description("Prints debugging information about the environment") + .action(async () => { + logger.info(clc.bold.white("\nEnvironment Info")); + const info = await envinfo.run( + { + System: ["OS", "CPU"], + Binaries: ["Node", "Yarn", "npm"], + Browsers: ["Chrome", "Edge", "Firefox", "Safari"], + npmGlobalPackages: ["firebase"], + }, + { + showNotFound: true, + duplicates: true, + fullTree: true, + } + ); + logger.info(clc.bold.white(info)); + });