• a colorful termial output for phantomjs porting from casperjs



    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);

  • 相关阅读:
    微信redirect_uri 回调错误,scope权限错误
    对“空间数据库”的理解
    空间数据库2
    PostgreSQL和MySQL
    shp文件和地理数据库文件的区别
    分布式 空间数据库
    Git使用教程
    栅格投影
    mapnik渲染原理
    高斯消元——浮点数模板
  • 原文地址:https://www.cnblogs.com/lexus/p/2486925.html
Copyright © 2020-2023  润新知