forked from skygragon/leetcode-cli
-
Notifications
You must be signed in to change notification settings - Fork 52
/
Copy pathversion.js
77 lines (62 loc) · 1.99 KB
/
version.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
'use strict';
var _ = require('underscore');
var file = require('../file');
var chalk = require('../chalk');
var icon = require('../icon');
var log = require('../log');
var Plugin = require('../plugin');
var session = require('../session');
const cmd = {
command: 'version',
aliases: ['info', 'env'],
desc: 'Show version info',
builder: function(yargs) {
return yargs
.example(chalk.yellow('leetcode version'), 'Show version number')
.example(chalk.yellow('leetcode version -v'), 'Show more details');
}
};
function printLine(k, v) {
log.printf('%-20s %s', k, v);
}
function getVersion() {
let version = require('../../package.json').version;
try {
const commit = require('../../.env.json').commit.short;
if (commit) version += '-' + commit;
} catch (e) {}
return version;
}
cmd.handler = function(argv) {
session.argv = argv;
const version = getVersion();
if (!log.isEnabled('DEBUG'))
return log.info(version);
const logo = [
' _ _ _ ',
'| | | | | | ',
'| | ___ ___| |_ ___ ___ __| | ___ ',
'| |/ _ \\/ _ \\ __|/ __|/ _ \\ / _` |/ _ \\',
'| | __/ __/ |_ (__| (_) | (_| | __/',
'|_|\\___|\\___|\\__|\\___|\\___/ \\__,_|\\___| CLI ' + chalk.green('v' + version)
].join('\n');
log.info(logo);
const os = require('os');
const config = require('../config');
log.info('\n[Environment]');
printLine('Node', process.version);
printLine('OS', os.platform() + ' ' + os.release());
printLine('Cache', file.cacheDir());
printLine('Config', file.configFile());
log.info('\n[Configuration]');
_.each(config.getAll(true), function(v, k) {
if (k === 'plugins') return;
printLine(k, JSON.stringify(v));
});
log.info('\n[Themes]');
printLine('Colors', Array.from(chalk.themes.keys()));
printLine('Icons', Array.from(icon.themes.keys()));
log.info('\n[Plugins]');
for (let p of Plugin.plugins) printLine(p.name, p.ver);
};
module.exports = cmd;