8000 [Plugin] prepare for auto install missing plugins. · boylee1111/leetcode-cli@fc29d65 · GitHub
[go: up one dir, main page]

Skip to content

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit fc29d65

Browse files
committed
[Plugin] prepare for auto install missing plugins.
* save existing plugins list. * enhance `plugin` command output. Signed-off-by: Eric Wang <skygragon@gmail.com>
1 parent d149308 commit fc29d65

File tree

4 files changed

+29
-3
lines changed

4 files changed

+29
-3
lines changed

lib/cli.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,8 @@ cli.run = function() {
6363
initIcon();
6464
initLogLevel();
6565

66-
Plugin.init(core);
66+
if (Plugin.init(core))
67+
Plugin.save();
6768

6869
process.stdout.on('error', function(e) {
6970
if (e.code === 'EPIPE') process.exit();

lib/commands/plugin.js

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
'use strict';
22
var fs = require('fs');
33

4+
var sprintf = require('sprintf-js').sprintf;
5+
46
var h = require('../helper');
57
var chalk = require('../chalk');
68
var config = require('../config');
@@ -60,6 +62,17 @@ const cmd = {
6062
}
6163
};
6264

65+
function printPlugins(plugins) {
66+
log.info(chalk.gray(sprintf(' %6s %-18s %-15s %s', 'Active', 'Name', 'Version', 'Desc')));
67+
log.info(chalk.gray('-'.repeat(100)));
68+
69+
plugins = plugins || Plugin.plugins;
70+
for (let p of plugins)
71+
log.printf(' %s %-18s %-15s %s',
72+
h.prettyText('', p.enabled), p.name, p.ver, p.desc);
73+
Plugin.save();
74+
}
75+
6376
cmd.handler = function(argv) {
6477
session.argv = argv;
6578

@@ -83,17 +96,18 @@ cmd.handler = function(argv) {
8396

8497
if (argv.enable) {
8598
plugin.enable(true);
99+
printPlugins();
86100
} else if (argv.disable) {
87101
plugin.enable(false);
102+
printPlugins();
88103
} else if (argv.delete) {
89104
fs.unlink(fullpath, function(e) {
90105
if (e) log.error(e.message);
91106
});
92107
} else if (argv.config) {
93108
log.info(JSON.stringify(config.plugins[name] || {}, null, 2));
94109
} else {
95-
for (let p of plugins)
96-
log.printf('%s %-18s %-15s %s', h.prettyText('', p.enabled), p.name, p.ver, p.desc);
110+
printPlugins(plugins);
97111
}
98112
};
99113

lib/helper.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ const h = {};
5353
h.KEYS = {
5454
user: '../user',
5555
stat: '../stat',
56+
plugins: '../plugins',
5657
problems: 'problems',
5758
problem: p => p.fid + '.' + p.slug + '.' + p.category
5859
};

lib/plugin.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ var _ = require('underscore');
77
var request = require('request');
88

99
var h = require('./helper');
10+
var cache = require('./cache');
1011
var config = require('./config');
1112
var log = require('./log');
1213

@@ -95,6 +96,7 @@ Plugin.init = function(head) {
9596
last = p;
9697
}
9798
Plugin.plugins = plugins;
99+
return true;
98100
};
99101

100102
Plugin.copy = function(src, cb) {
@@ -138,4 +140,12 @@ Plugin.install = function(name, cb) {
138140
});
139141
};
140142

143+
Plugin.save = function() {
144+
const data = Plugin.plugins
145+
.map(x => {
146+
return {name: x.name, enabled: x.enabled}
147+
});
148+
cache.set(h.KEYS.plugins, data);
149+
};
150+
141151
module.exports = Plugin;

0 commit comments

Comments
 (0)
0