Skip to content

Commit d1d2753

Browse files
committed
Refactor to use log.printf()
Signed-off-by: Eric Wang <[email protected]>
1 parent 3fb30bb commit d1d2753

File tree

10 files changed

+66
-89
lines changed

10 files changed

+66
-89
lines changed

lib/commands/cache.js

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
var sprintf = require('sprintf-js').sprintf;
21
var _ = require('underscore');
32

43
var h = require('../helper');
4+
var chalk = require('../chalk');
55
var log = require('../log');
66
var cache = require('../cache');
77
var session = require('../session');
@@ -33,11 +33,10 @@ cmd.handler = function(argv) {
3333
return x;
3434
})
3535
.forEach(function(f) {
36-
log.info(sprintf('%-50s %8s %s ago',
37-
f.name,
38-
h.prettySize(f.size),
39-
h.prettyTime((Date.now() - f.mtime) / 1000)
40-
));
36+
log.printf('%-50s %8s %s ago',
37+
chalk.green(f.name),
38+
h.prettySize(f.size),
39+
h.prettyTime((Date.now() - f.mtime) / 1000));
4140
});
4241
} else if (argv.all) {
4342
cache.list().forEach(function(f) {

lib/commands/list.js

+17-16
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
var _ = require('underscore');
2-
var sprintf = require('sprintf-js').sprintf;
32

43
var h = require('../helper');
54
var chalk = require('../chalk');
@@ -107,31 +106,33 @@ cmd.handler = function(argv) {
107106
});
108107
}
109108

110-
var stat = {locked: 0, starred: 0};
109+
var stat = {};
110+
['locked', 'starred', 'ac', 'notac', 'None', 'Easy', 'Medium', 'Hard'].forEach(function(x) {
111+
stat[x] = 0;
112+
});
113+
111114
problems.forEach(function(problem) {
112115
stat[problem.level] = (stat[problem.level] || 0) + 1;
113116
stat[problem.state] = (stat[problem.state] || 0) + 1;
114117
if (problem.locked) ++stat.locked;
115118
if (problem.starred) ++stat.starred;
116119

117-
log.info(sprintf('%s %s %s [%3d] %-60s %-6s (%.2f %%)',
118-
(problem.starred ? chalk.yellow(icon.like) : icon.none),
119-
(problem.locked ? chalk.red(icon.lock) : icon.none),
120-
h.prettyState(problem.state),
121-
problem.id,
122-
problem.name,
123-
problem.level,
124-
problem.percent));
120+
log.printf('%s %s %s [%3d] %-60s %-6s (%.2f %%)',
121+
(problem.starred ? chalk.yellow(icon.like) : icon.none),
122+
(problem.locked ? chalk.red(icon.lock) : icon.none),
123+
h.prettyState(problem.state),
124+
problem.id,
125+
problem.name,
126+
problem.level,
127+
problem.percent);
125128
});
126129

127130
if (argv.stat) {
128131
log.info();
129-
log.info(sprintf(' All: %-9d Listed: %-9d', all, problems.length));
130-
log.info(sprintf(' Locked: %-9d Starred: %-9d', stat.locked, stat.starred));
131-
log.info(sprintf(' Accept: %-9d Not-AC: %-9d New: %-9d',
132-
(stat.ac || 0), (stat.notac || 0), (stat.None || 0)));
133-
log.info(sprintf(' Easy: %-9d Medium: %-9d Hard: %-9d',
134-
(stat.Easy || 0), (stat.Medium || 0), (stat.Hard || 0)));
132+
log.printf(' All: %-9d Listed: %-9d', all, problems.length);
133+
log.printf(' Locked: %-9d Starred: %-9d', stat.locked, stat.starred);
134+
log.printf(' Accept: %-9d Not-AC: %-9d New: %-9d', stat.ac, stat.notac, stat.None);
135+
log.printf(' Easy: %-9d Medium: %-9d Hard: %-9d', stat.Easy, stat.Medium, stat.Hard);
135136
}
136137
});
137138
};

lib/commands/plugin.js

+5-13
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
var fs = require('fs');
22
var path = require('path');
33

4-
var sprintf = require('sprintf-js').sprintf;
5-
64
var h = require('../helper');
5+
var chalk = require('../chalk');
76
var log = require('../log');
87
var Plugin = require('../plugin');
98
var session = require('../session');
@@ -61,14 +60,14 @@ cmd.handler = function(argv) {
6160

6261
if (!argv.enable && !argv.disable && !argv.delete) {
6362
plugins.forEach(function(p) {
64-
log.info(sprintf('%s %-20s %-15s %s',
65-
h.prettyText('', p.enabled), p.name, p.ver, p.desc));
63+
log.printf('%s %-18s %-15s %s', h.prettyText('', p.enabled), p.name, p.ver, p.desc);
6664
});
6765
return;
6866
}
6967

7068
if (plugins.length === 0)
7169
return log.error('Plugin not found!');
70+
7271
var plugin = plugins[0];
7372
var oldname = Plugin.fullpath(plugin.file);
7473
var newname;
@@ -80,24 +79,17 @@ cmd.handler = function(argv) {
8079
fs.rename(oldname, newname, function(e) {
8180
if (e) log.error(e.message);
8281
});
83-
return;
84-
}
85-
86-
if (argv.disable) {
82+
} else if (argv.disable) {
8783
if (plugin.file[0] === '.') return;
8884
newname = Plugin.fullpath('.' + plugin.file);
8985

9086
fs.rename(oldname, newname, function(e) {
9187
if (e) log.error(e.message);
9288
});
93-
return;
94-
}
95-
96-
if (argv.delete) {
89+
} else if (argv.delete) {
9790
fs.unlink(oldname, function(e) {
9891
if (e) log.error(e.message);
9992
});
100-
return;
10193
}
10294
};
10395

lib/commands/show.js

+22-24
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ var fs = require('fs');
22
var util = require('util');
33

44
var _ = require('underscore');
5-
var sprintf = require('sprintf-js').sprintf;
65

76
var h = require('../helper');
87
var chalk = require('../chalk');
@@ -61,39 +60,38 @@ cmd.handler = function(argv) {
6160
if (!template && (argv.template || argv.gen))
6261
return log.fail('Unknown language "' + argv.lang + '"');
6362

64-
var fileinfo = '';
63+
var filename;
6564
if (argv.gen) {
6665
problem.code = template.defaultCode;
6766

6867
// try to use a new filename to avoid overwrite by mistake
69-
var filename = problem.id + '.' + problem.slug + h.langToExt(argv.lang);
68+
filename = problem.id + '.' + problem.slug + h.langToExt(argv.lang);
7069
var i = 0;
71-
while (fs.existsSync(filename)) {
72-
filename = problem.id + '.' +
73-
problem.slug + '.' +
74-
(i++) +
75-
h.langToExt(argv.lang);
76-
}
70+
while (fs.existsSync(filename))
71+
filename = problem.id + '.' + problem.slug + '.' + (i++) + h.langToExt(argv.lang);
7772

7873
core.exportProblem(problem, filename, !argv.extra);
79-
fileinfo = sprintf('(File: %s)', chalk.yellow.underline(filename));
8074
}
8175

8276
if (argv.desc) {
83-
log.info(sprintf('[%d] %s %s\t%s\n',
84-
problem.id,
85-
problem.name,
86-
(problem.starred ? chalk.yellow(icon.like) : ' '),
87-
fileinfo));
88-
log.info(sprintf('%s\n', chalk.underline(problem.link)));
89-
log.info(sprintf('* %s', problem.category));
90-
log.info(sprintf('* %s (%.2f%%)', problem.level, problem.percent));
91-
log.info(sprintf('* Total Accepted: %s', problem.totalAC));
92-
log.info(sprintf('* Total Submissions: %s', problem.totalSubmit));
93-
if (problem.testable && problem.testcase) {
94-
log.info(sprintf('* Testcase Example: %s',
95-
chalk.yellow(util.inspect(problem.testcase))));
96-
}
77+
log.printf('[%d] %s %s', problem.id, problem.name,
78+
(problem.starred ? chalk.yellow(icon.like) : icon.none));
79+
log.info();
80+
log.info(chalk.underline(problem.link));
81+
82+
log.info();
83+
log.printf('* %s', problem.category);
84+
log.printf('* %s (%.2f%%)', problem.level, problem.percent);
85+
86+
if (filename)
87+
log.printf('* Source Code: %s', chalk.yellow.underline(filename));
88+
if (problem.totalAC)
89+
log.printf('* Total Accepted: %s', problem.totalAC);
90+
if (problem.totalSubmit)
91+
log.printf('* Total Submissions: %s', problem.totalSubmit);
92+
if (problem.testable && problem.testcase)
93+
log.printf('* Testcase Example: %s', chalk.yellow(util.inspect(problem.testcase)));
94+
9795
log.info();
9896
log.info(problem.desc);
9997

lib/commands/star.js

+2-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
var sprintf = require('sprintf-js').sprintf;
2-
31
var chalk = require('../chalk');
42
var icon = require('../icon');
53
var log = require('../log');
@@ -27,10 +25,8 @@ cmd.handler = function(argv) {
2725
core.starProblem(problem, !argv.delete, function(e, starred) {
2826
if (e) return log.fail(e);
2927

30-
log.info(sprintf('[%d] %s %s',
31-
problem.id,
32-
problem.name,
33-
chalk.yellow(starred ? icon.like : icon.unlike)));
28+
log.printf('[%d] %s %s', problem.id, problem.name,
29+
chalk.yellow(starred ? icon.like : icon.unlike));
3430

3531
core.updateProblem(problem, {starred: starred});
3632
});

lib/commands/submission.js

+2-5
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,8 @@ function onTaskDone(e, msg, problem, cb) {
4747
// - green: accepted, fresh download
4848
// - yellow: not ac-ed, fresh download
4949
// - white: existed already, skip download
50-
log.info(sprintf('[%3d] %-60s %s',
51-
problem.id,
52-
problem.name,
53-
(e ? chalk.red('ERROR: ' + (e.msg || e)) : msg)
54-
));
50+
log.printf('[%3d] %-60s %s', problem.id, problem.name,
51+
(e ? chalk.red('ERROR: ' + (e.msg || e)) : msg));
5552
if (cb) cb(e);
5653
}
5754

lib/commands/submit.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ var cmd = {
1515
}
1616
};
1717

18-
var INDENT = ' ';
18+
var INDENT = ' ';
1919

2020
cmd.handler = function(argv) {
2121
session.argv = argv;

lib/commands/test.js

+7-16
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
var fs = require('fs');
2-
var util = require('util');
3-
42
var _ = require('underscore');
53

64
var h = require('../helper');
@@ -28,27 +26,20 @@ var cmd = {
2826
};
2927

3028
function prettyLine(actual, expected, key) {
31-
if (!actual.hasOwnProperty(key))
32-
return;
29+
if (!actual.hasOwnProperty(key)) return;
3330

3431
// hack: leetcode will return status_code = 10 even
3532
// if the answer is not right!
36-
if (key === 'status_code' && actual[key] === 10)
37-
return;
33+
if (key === 'status_code' && actual[key] === 10) return;
3834

3935
var ok = true;
40-
41-
if (!actual.run_success) {
42-
ok = false;
43-
} else if (expected && !_.isEqual(actual[key], expected[key])) {
44-
ok = false;
45-
}
36+
if (!actual.run_success) ok = false;
37+
else if (expected && !_.isEqual(actual[key], expected[key])) ok = false;
4638

4739
var line = (key === 'status_code') ?
48-
util.format(' %s', h.statusToName(actual[key])) :
49-
util.format(' %s: %s', key.split('_').pop(), actual[key]);
50-
51-
log.info(' ' + h.prettyText(line, ok));
40+
h.statusToName(actual[key]) :
41+
key.split('_').pop() + ': ' + actual[key];
42+
log.info(' ' + h.prettyText(' ' + line, ok));
5243
}
5344

5445
function runTest(argv) {

lib/commands/version.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
var _ = require('underscore');
2-
var sprintf = require('sprintf-js').sprintf;
32

43
var chalk = require('../chalk');
54
var icon = require('../icon');
@@ -15,7 +14,7 @@ var cmd = {
1514
};
1615

1716
function prettyLine(k, v) {
18-
log.info(sprintf('%-20s %s', k, v));
17+
log.printf('%-20s %s', k, v);
1918
}
2019

2120
function getVersion() {

lib/log.js

+4
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ log.fail = function(e) {
2727
log.error(sprintf('%s [%d]', (e.msg || e), (e.statusCode || 0)));
2828
};
2929

30+
log.printf = function() {
31+
log.info(sprintf.apply(null, _.toArray(arguments)));
32+
};
33+
3034
log.init = function() {
3135
this.setLevel('INFO');
3236

0 commit comments

Comments
 (0)