Skip to content

Commit 25f36d2

Browse files
committed
Add color theme.
Signed-off-by: Eric Wang <[email protected]>
1 parent 4ce4b78 commit 25f36d2

File tree

4 files changed

+42
-14
lines changed

4 files changed

+42
-14
lines changed

lib/chalk.js

+38-11
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,51 @@ function rgb(r, g, b) {
55
return style.color.ansi256.rgb(r, g, b);
66
}
77

8-
var colors = {
9-
black: rgb(0, 0, 0),
10-
blue: rgb(0, 0, 255),
11-
cyan: rgb(0, 255, 255),
12-
green: rgb(0, 255, 0),
13-
magenta: rgb(255, 0, 255),
14-
red: rgb(255, 0, 0),
15-
white: rgb(255, 255, 255),
16-
yellow: rgb(255, 255, 0)
8+
var THEMES = {
9+
'default': {
10+
black: rgb(0, 0, 0),
11+
blue: rgb(0, 0, 255),
12+
cyan: rgb(0, 255, 255),
13+
green: rgb(0, 255, 0),
14+
magenta: rgb(255, 0, 255),
15+
red: rgb(255, 0, 0),
16+
white: rgb(255, 255, 255),
17+
yellow: rgb(255, 255, 0)
18+
},
19+
'dark': {
20+
black: rgb(0, 0, 0),
21+
blue: rgb(0, 0, 153),
22+
cyan: rgb(0, 153, 153),
23+
green: rgb(0, 153, 0),
24+
magenta: rgb(153, 0, 153),
25+
red: rgb(153, 0, 0),
26+
white: rgb(255, 255, 255),
27+
yellow: rgb(153, 153, 0)
28+
},
29+
'pink': {
30+
black: rgb(0, 0, 0),
31+
blue: rgb(0, 0, 153),
32+
cyan: rgb(0, 153, 153),
33+
green: rgb(255, 20, 147),
34+
magenta: rgb(153, 0, 153),
35+
red: rgb(220, 20, 60),
36+
white: rgb(255, 255, 255),
37+
yellow: rgb(255, 69, 0)
38+
}
1739
};
1840

1941
var chalk = {
20-
enabled: true
42+
enabled: true,
43+
theme: THEMES.default
2144
};
2245

2346
var pres = [];
2447
var posts = [];
2548

49+
chalk.setTheme = function(name) {
50+
this.theme = THEMES[name] || THEMES.default;
51+
};
52+
2653
chalk.print = function(s) {
2754
s = this.enabled ? pres.join('') + s + posts.join('') : s;
2855
pres.length = posts.length = 0;
@@ -43,7 +70,7 @@ _.chain(['black', 'blue', 'cyan', 'green', 'magenta', 'red', 'white', 'yellow'])
4370
.each(function(color) {
4471
Object.defineProperty(chalk, color, {
4572
get: function() {
46-
return chalk.wrap(colors[color], style.color.close);
73+
return chalk.wrap(chalk.theme[color], style.color.close);
4774
}
4875
});
4976
});

lib/cli.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ var log = require('loglevel');
44

55
var chalk = require('./chalk');
66
var config = require('./config');
7-
var h = require('./helper');
87

98
// We are expecting a tier configuration like:
109
// global config < local config < cli params
@@ -15,6 +14,7 @@ function setColorMode() {
1514
if (process.argv.indexOf('--no-color') >= 0) useColor = false;
1615

1716
chalk.enabled = useColor;
17+
chalk.setTheme(config.COLOR_THEME);
1818
}
1919

2020
function setLogLevel() {
@@ -30,6 +30,7 @@ function setLogLevel() {
3030
}
3131

3232
function checkCache() {
33+
var h = require('./helper');
3334
var cacheDir = h.getCacheDir();
3435

3536
if (!fs.existsSync(cacheDir))

lib/config.js

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ var DEFAULT_CONFIG = {
1818
// but you will want change these
1919
LANG: 'cpp', // avail: [c,cpp,csharp,golang,java,javascript,python,ruby,swift]
2020
USE_COLOR: true,
21+
COLOR_THEME: 'default',
2122
AUTO_LOGIN: false,
2223
MAX_WORKERS: 10
2324
};

lib/helper.js

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

4-
var chalk = require('./chalk');
5-
64
var h = {};
75

86
h.prettyState = function(state) {
@@ -14,6 +12,7 @@ h.prettyState = function(state) {
1412
};
1513

1614
h.prettyText = function(text, yesNo) {
15+
var chalk = require('./chalk');
1716
switch (yesNo) {
1817
case true: return chalk.green('✔' + text);
1918
case false: return chalk.red('✘' + text);

0 commit comments

Comments
 (0)