var fs = require('fs');
var options = { bold: 1, underscore: 4, blink: 5, reverse: 7, conceal: 8 };
var foreground = { black: 30, red: 31, green: 32, yellow: 33, blue: 34, magenta: 35, cyan: 36, white: 37 };
var background = { black: 40, red: 41, green: 42, yellow: 43, blue: 44, magenta: 45, cyan: 46, white: 47 };
var styles = {
'ERROR': { bg: 'red', fg: 'white', bold: true },
'INFO': { fg: 'green', bold: true },
'TRACE': { fg: 'green', bold: true },
'PARAMETER': { fg: 'cyan' },
'COMMENT': { fg: 'yellow' },
'WARN': { fg: 'red', bold: true },
'GREEN_BAR': { fg: 'white', bg: 'green', bold: true },
'RED_BAR': { fg: 'white', bg: 'red', bold: true },
'INFO_BAR': { bg: 'cyan', fg: 'white', bold: true }
};
/**
* Adds a style to provided text.
*
* @param String text
* @param String styleName
* @return String
*/
function colorize(text, styleName, pad) {
return format(text, styles[styleName], pad);
};
/**
* Formats a text using a style declaration object.
*
* @param String text
* @param Object style
* @return String
*/
function format(text, style, pad) {
//if (fs.isWindows() || !isObject(style)) {
// return text;
//}
var codes = [];
if (style.fg && foreground[style.fg]) {
codes.push(foreground[style.fg]);
}
if (style.bg && background[style.bg]) {
codes.push(background[style.bg]);
}
for (var option in options) {
if (style[option] === true) {
codes.push(options[option]);
}
}
// pad
if (typeof pad === "number" && text.length < pad) {
text += new Array(pad - text.length + 1).join(' ');
}
return "\033[" + codes.join(';') + 'm' + text + "\033[0m";
};
var pad=0;
console.log(colorize("aaa", "ERROR"));
console.log("zzz");
phantom.exit(0);