From 9dd78906858495bb962fbe209ab3fadedd81d41e Mon Sep 17 00:00:00 2001 From: mkucharz Date: Tue, 21 Aug 2018 22:32:25 +0200 Subject: [PATCH] feat(cli): add sysinfo command --- packages/cli/src/cli.js | 9 +++++++ packages/cli/src/commands/index.js | 4 ++- packages/cli/src/commands/sysinfo.js | 37 ++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 packages/cli/src/commands/sysinfo.js diff --git a/packages/cli/src/cli.js b/packages/cli/src/cli.js index 7942652d..61f11b16 100755 --- a/packages/cli/src/cli.js +++ b/packages/cli/src/cli.js @@ -77,6 +77,15 @@ const setup = async () => { new commands.Logout(context).run(options) }) + program + .command('sysinfo') + .group('Basics') + .description('Sys info for debug purpose') + .action((...options) => { + trackAndDebug(options) + new commands.SysInfo(context).run(options) + }) + program .command('hot [socket_name]') .group('Project') diff --git a/packages/cli/src/commands/index.js b/packages/cli/src/commands/index.js index eeb74834..057c6710 100644 --- a/packages/cli/src/commands/index.js +++ b/packages/cli/src/commands/index.js @@ -24,6 +24,7 @@ import ComponentLink from './component-link' import InstanceList from './instance-list' import InstanceCreate from './instance-create' import InstanceDelete from './instance-delete' +import SysInfo from './sysinfo' export default { Attach, @@ -51,5 +52,6 @@ export default { ComponentLink, InstanceList, InstanceCreate, - InstanceDelete + InstanceDelete, + SysInfo } diff --git a/packages/cli/src/commands/sysinfo.js b/packages/cli/src/commands/sysinfo.js new file mode 100644 index 00000000..f3331c9c --- /dev/null +++ b/packages/cli/src/commands/sysinfo.js @@ -0,0 +1,37 @@ +import os from 'os' +import child_process from 'child_process' +import format from 'chalk' + +import logger from '../utils/debug' +import { p, echo, echon } from '../utils/print-tools' +import pjson from '../../package.json' + +const { debug } = logger('cmd-sysinfo') + +export default class SysInfoCmd { + constructor (context) { + debug('SysInfoCmd.constructor') + this.context = context + this.session = context.session + } + + async run ([cmd]) { + const npmVersion = child_process.spawnSync('npm', ['-v']) + .stdout + .toString() + .trim() + + echo() + echon(2)(` ${format.dim('cli version')}:`) + echo(` ${format.cyan(pjson.version)}`) + echon(2)(`${format.dim('node version')}:`) + echo(` ${format.cyan(process.version)}`) + echon(2)(` ${format.dim('npm version')}:`) + echo(` ${format.cyan(npmVersion)}`) + echon(2)(` ${format.dim('platform')}:`) + echo(` ${format.cyan(os.type)}`) + echon(2)(` ${format.dim('arch')}:`) + echo(` ${format.cyan(process.arch)}`) + echo() + } +}