forked from skygragon/leetcode-cli
-
Notifications
You must be signed in to change notification settings - Fork 51
/
Copy pathuser.js
62 lines (56 loc) · 1.35 KB
/
user.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
var log = require('loglevel');
var prompt = require('prompt');
var chalk = require('../chalk');
var core = require('../core');
var cmd = {
command: 'user',
desc: 'login/logout with leetcode account',
builder: {
login: {
alias: 'l',
type: 'boolean',
default: false,
describe: 'Login'
},
logout: {
alias: 'L',
type: 'boolean',
default: false,
describe: 'Logout'
}
}
};
cmd.handler = function(argv) {
var user = null;
if (argv.login) {
// login
prompt.colors = false;
prompt.message = '';
prompt.start();
prompt.get([
{name: 'login', required: true},
{name: 'pass', required: true, hidden: true}
], function(e, user) {
if (e) return log.fail(e);
core.login(user, function(e, user) {
if (e) return log.fail(e);
log.info('Successfully login as', chalk.yellow(user.name));
});
});
} else if (argv.logout) {
// logout
user = core.logout(true);
if (user)
log.info('Successfully logout as', chalk.yellow(user.name));
else
log.fail('You are not login yet?');
} else {
// show current user
user = core.getUser();
if (user)
log.info('You are now login as', chalk.yellow(user.name));
else
return log.fail('You are not login yet?');
}
};
module.exports = cmd;