http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/b0372a55/node_modules/.bin/bunyan
----------------------------------------------------------------------
diff --git a/node_modules/.bin/bunyan b/node_modules/.bin/bunyan
deleted file mode 100755
index 73cf458..0000000
--- a/node_modules/.bin/bunyan
+++ /dev/null
@@ -1,1665 +0,0 @@
-#!/usr/bin/env node
-/**
- * Copyright 2016 Trent Mick
- * Copyright 2016 Joyent Inc.
- *
- * bunyan -- filter and pretty-print Bunyan log files (line-delimited JSON)
- *
- * See <https://github.com/trentm/node-bunyan>.
- *
- * -*- mode: js -*-
- * vim: expandtab:ts=4:sw=4
- */
-
-var VERSION = '1.8.8';
-
-var p = console.log;
-var util = require('util');
-var pathlib = require('path');
-var vm = require('vm');
-var http = require('http');
-var fs = require('fs');
-var warn = console.warn;
-var child_process = require('child_process'),
-    spawn = child_process.spawn,
-    exec = child_process.exec,
-    execFile = child_process.execFile;
-var assert = require('assert');
-
-try {
-    var moment = require('moment');
-} catch (e) {
-    moment = null;
-}
-
-
-//---- globals and constants
-
-var nodeVer = process.versions.node.split('.').map(Number);
-var nodeSpawnSupportsStdio = (nodeVer[0] > 0 || nodeVer[1] >= 8);
-
-// Internal debug logging via `console.warn`.
-var _DEBUG = false;
-
-// Output modes.
-var OM_LONG = 1;
-var OM_JSON = 2;
-var OM_INSPECT = 3;
-var OM_SIMPLE = 4;
-var OM_SHORT = 5;
-var OM_BUNYAN = 6;
-var OM_FROM_NAME = {
-    'long': OM_LONG,
-    'paul': OM_LONG,  /* backward compat */
-    'json': OM_JSON,
-    'inspect': OM_INSPECT,
-    'simple': OM_SIMPLE,
-    'short': OM_SHORT,
-    'bunyan': OM_BUNYAN
-};
-
-
-// Levels
-var TRACE = 10;
-var DEBUG = 20;
-var INFO = 30;
-var WARN = 40;
-var ERROR = 50;
-var FATAL = 60;
-
-var levelFromName = {
-    'trace': TRACE,
-    'debug': DEBUG,
-    'info': INFO,
-    'warn': WARN,
-    'error': ERROR,
-    'fatal': FATAL
-};
-var nameFromLevel = {};
-var upperNameFromLevel = {};
-var upperPaddedNameFromLevel = {};
-Object.keys(levelFromName).forEach(function (name) {
-    var lvl = levelFromName[name];
-    nameFromLevel[lvl] = name;
-    upperNameFromLevel[lvl] = name.toUpperCase();
-    upperPaddedNameFromLevel[lvl] = (
-        name.length === 4 ? ' ' : '') + name.toUpperCase();
-});
-
-
-// Display time formats.
-var TIME_UTC = 1;  // the default, bunyan's native format
-var TIME_LOCAL = 2;
-
-// Timezone formats: output format -> momentjs format string
-var TIMEZONE_UTC_FORMATS = {
-    long:  '[[]YYYY-MM-DD[T]HH:mm:ss.SSS[Z][]]',
-    short: 'HH:mm:ss.SSS[Z]'
-};
-var TIMEZONE_LOCAL_FORMATS = {
-    long:  '[[]YYYY-MM-DD[T]HH:mm:ss.SSSZ[]]',
-    short: 'HH:mm:ss.SSS'
-};
-
-
-// The current raw input line being processed. Used for `uncaughtException`.
-var currLine = null;
-
-// Child dtrace process, if any. Used for signal-handling.
-var child = null;
-
-// Whether ANSI codes are being used. Used for signal-handling.
-var usingAnsiCodes = false;
-
-// Used to tell the 'uncaughtException' handler that '-c CODE' is being used.
-var gUsingConditionOpts = false;
-
-// Pager child process, and output stream to which to write.
-var pager = null;
-var stdout = process.stdout;
-
-// Whether we are reading from stdin.
-var readingStdin = false;
-
-
-
-//---- support functions
-
-function getVersion() {
-    return VERSION;
-}
-
-
-var format = util.format;
-if (!format) {
-    /* BEGIN JSSTYLED */
-    // If not node 0.6, then use its `util.format`:
-    // <https://github.com/joyent/node/blob/master/lib/util.js#L22>:
-    var inspect = util.inspect;
-    var formatRegExp = /%[sdj%]/g;
-    format = function format(f) {
-        if (typeof f !== 'string') {
-            var objects = [];
-            for (var i = 0; i < arguments.length; i++) {
-                objects.push(inspect(arguments[i]));
-            }
-            return objects.join(' ');
-        }
-
-        var i = 1;
-        var args = arguments;
-        var len = args.length;
-        var str = String(f).replace(formatRegExp, function (x) {
-            if (i >= len)
-                return x;
-            switch (x) {
-                case '%s': return String(args[i++]);
-                case '%d': return Number(args[i++]);
-                case '%j': return JSON.stringify(args[i++]);
-                case '%%': return '%';
-                default:
-                    return x;
-            }
-        });
-        for (var x = args[i]; i < len; x = args[++i]) {
-            if (x === null || typeof x !== 'object') {
-                str += ' ' + x;
-            } else {
-                str += ' ' + inspect(x);
-            }
-        }
-        return str;
-    };
-    /* END JSSTYLED */
-}
-
-function indent(s) {
-    return '    ' + s.split(/\r?\n/).join('\n    ');
-}
-
-function objCopy(obj) {
-    if (obj === null) {
-        return null;
-    } else if (Array.isArray(obj)) {
-        return obj.slice();
-    } else {
-        var copy = {};
-        Object.keys(obj).forEach(function (k) {
-            copy[k] = obj[k];
-        });
-        return copy;
-    }
-}
-
-function printHelp() {
-    /* BEGIN JSSTYLED */
-    p('Usage:');
-    p('  bunyan [OPTIONS] [FILE ...]');
-    p('  ... | bunyan [OPTIONS]');
-    p('  bunyan [OPTIONS] -p PID');
-    p('');
-    p('Filter and pretty-print Bunyan log file content.');
-    p('');
-    p('General options:');
-    p('  -h, --help    print this help info and exit');
-    p('  --version     print version of this command and exit');
-    p('');
-    p('Runtime log snooping (via DTrace, only on supported platforms):');
-    p('  -p PID        Process bunyan:log-* probes from the process');
-    p('                with the given PID. Can be used multiple times,');
-    p('                or specify all processes with "*", or a set of');
-    p('                processes whose command & args match a pattern');
-    p('                with "-p NAME".');
-    p('');
-    p('Filtering options:');
-    p('  -l, --level LEVEL');
-    p('                Only show messages at or above the specified level.');
-    p('                You can specify level *names* or the internal numeric');
-    p('                values.');
-    p('  -c, --condition CONDITION');
-    p('                Run each log message through the condition and');
-    p('                only show those that return truish. E.g.:');
-    p('                    -c \'this.pid == 123\'');
-    p('                    -c \'this.level == DEBUG\'');
-    p('                    -c \'this.msg.indexOf("boom") != -1\'');
-    p('                "CONDITION" must be legal JS code. `this` holds');
-    p('                the log record. The TRACE, DEBUG, ... FATAL values');
-    p('                are defined to help with comparing `this.level`.');
-    p('  --strict      Suppress all but legal Bunyan JSON log lines. By 
default');
-    p('                non-JSON, and non-Bunyan lines are passed through.');
-    p('');
-    p('Output options:');
-    p('  --pager       Pipe output into `less` (or $PAGER if set), if');
-    p('                stdout is a TTY. This overrides $BUNYAN_NO_PAGER.');
-    p('                Note: Paging is only supported on node >=0.8.');
-    p('  --no-pager    Do not pipe output into a pager.');
-    p('  --color       Colorize output. Defaults to try if output');
-    p('                stream is a TTY.');
-    p('  --no-color    Force no coloring (e.g. terminal doesn\'t support it)');
-    p('  -o, --output MODE');
-    p('                Specify an output mode/format. One of');
-    p('                  long: (the default) pretty');
-    p('                  json: JSON output, 2-space indent');
-    p('                  json-N: JSON output, N-space indent, e.g. "json-4"');
-    p('                  bunyan: 0 indented JSON, bunyan\'s native format');
-    p('                  inspect: node.js `util.inspect` output');
-    p('                  short: like "long", but more concise');
-    p('                  simple: level, followed by "-" and then the message');
-    p('  -j            shortcut for `-o json`');
-    p('  -0            shortcut for `-o bunyan`');
-    p('  -L, --time local');
-    p('                Display time field in local time, rather than UTC.');
-    p('');
-    p('Environment Variables:');
-    p('  BUNYAN_NO_COLOR    Set to a non-empty value to force no output ');
-    p('                     coloring. See "--no-color".');
-    p('  BUNYAN_NO_PAGER    Disable piping output to a pager. ');
-    p('                     See "--no-pager".');
-    p('');
-    p('See <https://github.com/trentm/node-bunyan> for more complete docs.');
-    p('Please report bugs to <https://github.com/trentm/node-bunyan/issues>.');
-    /* END JSSTYLED */
-}
-
-/*
- * If the user specifies multiple input sources, we want to print out records
- * from all sources in a single, chronologically ordered stream.  To do this
- * efficiently, we first assume that all records within each source are ordered
- * already, so we need only keep track of the next record in each source and
- * the time of the last record emitted.  To avoid excess memory usage, we
- * pause() streams that are ahead of others.
- *
- * 'streams' is an object indexed by source name (file name) which specifies:
- *
- *    stream        Actual stream object, so that we can pause and resume it.
- *
- *    records       Array of log records we've read, but not yet emitted.  Each
- *                  record includes 'line' (the raw line), 'rec' (the JSON
- *                  record), and 'time' (the parsed time value).
- *
- *    done          Whether the stream has any more records to emit.
- */
-var streams = {};
-
-function gotRecord(file, line, rec, opts, stylize)
-{
-    var time = new Date(rec.time);
-
-    streams[file]['records'].push({ line: line, rec: rec, time: time });
-    emitNextRecord(opts, stylize);
-}
-
-function filterRecord(rec, opts)
-{
-    if (opts.level && rec.level < opts.level) {
-        return false;
-    }
-
-    if (opts.condFuncs) {
-        var recCopy = objCopy(rec);
-        for (var i = 0; i < opts.condFuncs.length; i++) {
-            var pass = opts.condFuncs[i].call(recCopy);
-            if (!pass)
-                return false;
-        }
-    } else if (opts.condVm) {
-        for (var i = 0; i < opts.condVm.length; i++) {
-            var pass = opts.condVm[i].runInNewContext(rec);
-            if (!pass)
-                return false;
-        }
-    }
-
-    return true;
-}
-
-function emitNextRecord(opts, stylize)
-{
-    var ofile, ready, minfile, rec;
-
-    for (;;) {
-        /*
-         * Take a first pass through the input streams to see if we have a
-         * record from all of them.  If not, we'll pause any streams for
-         * which we do already have a record (to avoid consuming excess
-         * memory) and then wait until we have records from the others
-         * before emitting the next record.
-         *
-         * As part of the same pass, we look for the earliest record
-         * we have not yet emitted.
-         */
-        minfile = undefined;
-        ready = true;
-        for (ofile in streams) {
-
-            if (streams[ofile].stream === null ||
-                (!streams[ofile].done && streams[ofile].records.length === 0)) 
{
-                ready = false;
-                break;
-            }
-
-            if (streams[ofile].records.length > 0 &&
-                (minfile === undefined ||
-                    streams[minfile].records[0].time >
-                        streams[ofile].records[0].time)) {
-                minfile = ofile;
-            }
-        }
-
-        if (!ready || minfile === undefined) {
-            for (ofile in streams) {
-                if (!streams[ofile].stream || streams[ofile].done)
-                    continue;
-
-                if (streams[ofile].records.length > 0) {
-                    if (!streams[ofile].paused) {
-                        streams[ofile].paused = true;
-                        streams[ofile].stream.pause();
-                    }
-                } else if (streams[ofile].paused) {
-                    streams[ofile].paused = false;
-                    streams[ofile].stream.resume();
-                }
-            }
-
-            return;
-        }
-
-        /*
-         * Emit the next record for 'minfile', and invoke ourselves again to
-         * make sure we emit as many records as we can right now.
-         */
-        rec = streams[minfile].records.shift();
-        emitRecord(rec.rec, rec.line, opts, stylize);
-    }
-}
-
-/**
- * Return a function for the given JS code that returns.
- *
- * If no 'return' in the given javascript snippet, then assume we are a single
- * statement and wrap in 'return (...)'. This is for convenience for short
- * '-c ...' snippets.
- */
-function funcWithReturnFromSnippet(js) {
-    // auto-"return"
-    if (js.indexOf('return') === -1) {
-        if (js.substring(js.length - 1) === ';') {
-            js = js.substring(0, js.length - 1);
-        }
-        js = 'return (' + js + ')';
-    }
-
-    // Expose level definitions to condition func context
-    var varDefs = [];
-    Object.keys(upperNameFromLevel).forEach(function (lvl) {
-        varDefs.push(format('var %s = %d;',
-                upperNameFromLevel[lvl], lvl));
-    });
-    varDefs = varDefs.join('\n') + '\n';
-
-    return (new Function(varDefs + js));
-}
-
-/**
- * Parse the command-line options and arguments into an object.
- *
- *    {
- *      'args': [...]       // arguments
- *      'help': true,       // true if '-h' option given
- *       // etc.
- *    }
- *
- * @return {Object} The parsed options. `.args` is the argument list.
- * @throws {Error} If there is an error parsing argv.
- */
-function parseArgv(argv) {
-    var parsed = {
-        args: [],
-        help: false,
-        color: null,
-        paginate: null,
-        outputMode: OM_LONG,
-        jsonIndent: 2,
-        level: null,
-        strict: false,
-        pids: null,
-        pidsType: null,
-        timeFormat: TIME_UTC  // one of the TIME_ constants
-    };
-
-    // Turn '-iH' into '-i -H', except for argument-accepting options.
-    var args = argv.slice(2);  // drop ['node', 'scriptname']
-    var newArgs = [];
-    var optTakesArg = {'d': true, 'o': true, 'c': true, 'l': true, 'p': true};
-    for (var i = 0; i < args.length; i++) {
-        if (args[i].charAt(0) === '-' && args[i].charAt(1) !== '-' &&
-            args[i].length > 2)
-        {
-            var splitOpts = args[i].slice(1).split('');
-            for (var j = 0; j < splitOpts.length; j++) {
-                newArgs.push('-' + splitOpts[j]);
-                if (optTakesArg[splitOpts[j]]) {
-                    var optArg = splitOpts.slice(j+1).join('');
-                    if (optArg.length) {
-                        newArgs.push(optArg);
-                    }
-                    break;
-                }
-            }
-        } else {
-            newArgs.push(args[i]);
-        }
-    }
-    args = newArgs;
-
-    // Expose level definitions to condition vm context
-    var condDefines = [];
-    Object.keys(upperNameFromLevel).forEach(function (lvl) {
-        condDefines.push(
-            format('Object.prototype.%s = %s;', upperNameFromLevel[lvl], lvl));
-    });
-    condDefines = condDefines.join('\n') + '\n';
-
-    var endOfOptions = false;
-    while (args.length > 0) {
-        var arg = args.shift();
-        switch (arg) {
-            case '--':
-                endOfOptions = true;
-                break;
-            case '-h': // display help and exit
-            case '--help':
-                parsed.help = true;
-                break;
-            case '--version':
-                parsed.version = true;
-                break;
-            case '--strict':
-                parsed.strict = true;
-                break;
-            case '--color':
-                parsed.color = true;
-                break;
-            case '--no-color':
-                parsed.color = false;
-                break;
-            case '--pager':
-                parsed.paginate = true;
-                break;
-            case '--no-pager':
-                parsed.paginate = false;
-                break;
-            case '-o':
-            case '--output':
-                var name = args.shift();
-                var idx = name.lastIndexOf('-');
-                if (idx !== -1) {
-                    var indentation = Number(name.slice(idx+1));
-                    if (! isNaN(indentation)) {
-                        parsed.jsonIndent = indentation;
-                        name = name.slice(0, idx);
-                    }
-                }
-                parsed.outputMode = OM_FROM_NAME[name];
-                if (parsed.outputMode === undefined) {
-                    throw new Error('unknown output mode: "'+name+'"');
-                }
-                break;
-            case '-j': // output with JSON.stringify
-                parsed.outputMode = OM_JSON;
-                break;
-            case '-0':
-                parsed.outputMode = OM_BUNYAN;
-                break;
-            case '-L':
-                parsed.timeFormat = TIME_LOCAL;
-                if (!moment) {
-                    throw new Error(
-                        'could not find moment package required for "-L"');
-                }
-                break;
-            case '--time':
-                var timeArg = args.shift();
-                switch (timeArg) {
-                case 'utc':
-                    parsed.timeFormat = TIME_UTC;
-                    break
-                case 'local':
-                    parsed.timeFormat = TIME_LOCAL;
-                    if (!moment) {
-                        throw new Error('could not find moment package '
-                            + 'required for "--time=local"');
-                    }
-                    break
-                case undefined:
-                    throw new Error('missing argument to "--time"');
-                default:
-                    throw new Error(format('invalid time format: "%s"',
-                        timeArg));
-                }
-                break;
-            case '-p':
-                if (!parsed.pids) {
-                    parsed.pids = [];
-                }
-                var pidArg = args.shift();
-                var pid = +(pidArg);
-                if (!isNaN(pid) || pidArg === '*') {
-                    if (parsed.pidsType && parsed.pidsType !== 'num') {
-                        throw new Error(format('cannot mix PID name and '
-                            + 'number arguments: "%s"', pidArg));
-                    }
-                    parsed.pidsType = 'num';
-                    if (!parsed.pids) {
-                        parsed.pids = [];
-                    }
-                    parsed.pids.push(isNaN(pid) ? pidArg : pid);
-                } else {
-                    if (parsed.pidsType && parsed.pidsType !== 'name') {
-                        throw new Error(format('cannot mix PID name and '
-                            + 'number arguments: "%s"', pidArg));
-                    }
-                    parsed.pidsType = 'name';
-                    parsed.pids = pidArg;
-                }
-                break;
-            case '-l':
-            case '--level':
-                var levelArg = args.shift();
-                var level = +(levelArg);
-                if (isNaN(level)) {
-                    level = +levelFromName[levelArg.toLowerCase()];
-                }
-                if (isNaN(level)) {
-                    throw new Error('unknown level value: "'+levelArg+'"');
-                }
-                parsed.level = level;
-                break;
-            case '-c':
-            case '--condition':
-                gUsingConditionOpts = true;
-                var condition = args.shift();
-                if (Boolean(process.env.BUNYAN_EXEC &&
-                    process.env.BUNYAN_EXEC === 'vm'))
-                {
-                    parsed.condVm = parsed.condVm || [];
-                    var scriptName = 'bunyan-condition-'+parsed.condVm.length;
-                    var code = condDefines + condition;
-                    var script;
-                    try {
-                        script = vm.createScript(code, scriptName);
-                    } catch (complErr) {
-                        throw new Error(format('illegal CONDITION code: %s\n'
-                            + '  CONDITION script:\n'
-                            + '%s\n'
-                            + '  Error:\n'
-                            + '%s',
-                            complErr, indent(code), indent(complErr.stack)));
-                    }
-
-                    // Ensure this is a reasonably safe CONDITION.
-                    try {
-                        script.runInNewContext(minValidRecord);
-                    } catch (condErr) {
-                        throw new Error(format(
-                            /* JSSTYLED */
-                            'CONDITION code cannot safely filter a minimal 
Bunyan log record\n'
-                            + '  CONDITION script:\n'
-                            + '%s\n'
-                            + '  Minimal Bunyan log record:\n'
-                            + '%s\n'
-                            + '  Filter error:\n'
-                            + '%s',
-                            indent(code),
-                            indent(JSON.stringify(minValidRecord, null, 2)),
-                            indent(condErr.stack)
-                            ));
-                    }
-                    parsed.condVm.push(script);
-                } else  {
-                    parsed.condFuncs = parsed.condFuncs || [];
-                    
parsed.condFuncs.push(funcWithReturnFromSnippet(condition));
-                }
-                break;
-            default: // arguments
-                if (!endOfOptions && arg.length > 0 && arg[0] === '-') {
-                    throw new Error('unknown option "'+arg+'"');
-                }
-                parsed.args.push(arg);
-                break;
-        }
-    }
-    //TODO: '--' handling and error on a first arg that looks like an option.
-
-    return parsed;
-}
-
-
-function isInteger(s) {
-    return (s.search(/^-?[0-9]+$/) == 0);
-}
-
-
-// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
-// Suggested colors (some are unreadable in common cases):
-// - Good: cyan, yellow (limited use), bold, green, magenta, red
-// - Bad: blue (not visible on cmd.exe), grey (same color as background on
-//   Solarized Dark theme from <https://github.com/altercation/solarized>, see
-//   issue #160)
-var colors = {
-    'bold' : [1, 22],
-    'italic' : [3, 23],
-    'underline' : [4, 24],
-    'inverse' : [7, 27],
-    'white' : [37, 39],
-    'grey' : [90, 39],
-    'black' : [30, 39],
-    'blue' : [34, 39],
-    'cyan' : [36, 39],
-    'green' : [32, 39],
-    'magenta' : [35, 39],
-    'red' : [31, 39],
-    'yellow' : [33, 39]
-};
-
-function stylizeWithColor(str, color) {
-    if (!str)
-        return '';
-    var codes = colors[color];
-    if (codes) {
-        return '\033[' + codes[0] + 'm' + str +
-                     '\033[' + codes[1] + 'm';
-    } else {
-        return str;
-    }
-}
-
-function stylizeWithoutColor(str, color) {
-    return str;
-}
-
-
-/**
- * Is this a valid Bunyan log record.
- */
-function isValidRecord(rec) {
-    if (rec.v == null ||
-            rec.level == null ||
-            rec.name == null ||
-            rec.hostname == null ||
-            rec.pid == null ||
-            rec.time == null ||
-            rec.msg == null) {
-        // Not valid Bunyan log.
-        return false;
-    } else {
-        return true;
-    }
-}
-var minValidRecord = {
-    v: 0,   //TODO: get this from bunyan.LOG_VERSION
-    level: INFO,
-    name: 'name',
-    hostname: 'hostname',
-    pid: 123,
-    time: Date.now(),
-    msg: 'msg'
-};
-
-
-/**
- * Parses the given log line and either emits it right away (for invalid
- * records) or enqueues it for emitting later when it's the next line to show.
- */
-function handleLogLine(file, line, opts, stylize) {
-    currLine = line; // intentionally global
-
-    // Emit non-JSON lines immediately.
-    var rec;
-    if (!line) {
-        if (!opts.strict) emit(line + '\n');
-        return;
-    } else if (line[0] !== '{') {
-        if (!opts.strict) emit(line + '\n');  // not JSON
-        return;
-    } else {
-        try {
-            rec = JSON.parse(line);
-        } catch (e) {
-            if (!opts.strict) emit(line + '\n');
-            return;
-        }
-    }
-
-    if (!isValidRecord(rec)) {
-        if (!opts.strict) emit(line + '\n');
-        return;
-    }
-
-    if (!filterRecord(rec, opts))
-        return;
-
-    if (file === null)
-        return emitRecord(rec, line, opts, stylize);
-
-    return gotRecord(file, line, rec, opts, stylize);
-}
-
-/**
- * Print out a single result, considering input options.
- */
-function emitRecord(rec, line, opts, stylize) {
-    var short = false;
-
-    switch (opts.outputMode) {
-    case OM_SHORT:
-        short = true;
-        /* jsl:fall-thru */
-
-    case OM_LONG:
-        //    [time] LEVEL: name[/comp]/pid on hostname (src): msg* (extras...)
-        //        msg*
-        //        --
-        //        long and multi-line extras
-        //        ...
-        // If 'msg' is single-line, then it goes in the top line.
-        // If 'req', show the request.
-        // If 'res', show the response.
-        // If 'err' and 'err.stack' then show that.
-        if (!isValidRecord(rec)) {
-            return emit(line + '\n');
-        }
-
-        delete rec.v;
-
-        // Time.
-        var time;
-        if (!short && opts.timeFormat === TIME_UTC) {
-            // Fast default path: We assume the raw `rec.time` is a UTC time
-            // in ISO 8601 format (per spec).
-            time = '[' + rec.time + ']';
-        } else if (!moment && opts.timeFormat === TIME_UTC) {
-            // Don't require momentjs install, as long as not using TIME_LOCAL.
-            time = rec.time.substr(11);
-        } else {
-            var tzFormat;
-            var moTime = moment(rec.time);
-            switch (opts.timeFormat) {
-            case TIME_UTC:
-                tzFormat = TIMEZONE_UTC_FORMATS[short ? 'short' : 'long'];
-                moTime.utc();
-                break;
-            case TIME_LOCAL:
-                tzFormat = TIMEZONE_LOCAL_FORMATS[short ? 'short' : 'long'];
-                break;
-            default:
-                throw new Error('unexpected timeFormat: ' + opts.timeFormat);
-            };
-            time = moTime.format(tzFormat);
-        }
-        time = stylize(time, 'XXX');
-        delete rec.time;
-
-        var nameStr = rec.name;
-        delete rec.name;
-
-        if (rec.component) {
-            nameStr += '/' + rec.component;
-        }
-        delete rec.component;
-
-        if (!short)
-            nameStr += '/' + rec.pid;
-        delete rec.pid;
-
-        var level = (upperPaddedNameFromLevel[rec.level] || 'LVL' + rec.level);
-        if (opts.color) {
-            var colorFromLevel = {
-                10: 'white',    // TRACE
-                20: 'yellow',   // DEBUG
-                30: 'cyan',     // INFO
-                40: 'magenta',  // WARN
-                50: 'red',      // ERROR
-                60: 'inverse',  // FATAL
-            };
-            level = stylize(level, colorFromLevel[rec.level]);
-        }
-        delete rec.level;
-
-        var src = '';
-        if (rec.src && rec.src.file) {
-            var s = rec.src;
-            if (s.func) {
-                src = format(' (%s:%d in %s)', s.file, s.line, s.func);
-            } else {
-                src = format(' (%s:%d)', s.file, s.line);
-            }
-            src = stylize(src, 'green');
-        }
-        delete rec.src;
-
-        var hostname = rec.hostname;
-        delete rec.hostname;
-
-        var extras = [];
-        var details = [];
-
-        if (rec.req_id) {
-            extras.push('req_id=' + rec.req_id);
-        }
-        delete rec.req_id;
-
-        var onelineMsg;
-        if (rec.msg.indexOf('\n') !== -1) {
-            onelineMsg = '';
-            details.push(indent(stylize(rec.msg, 'cyan')));
-        } else {
-            onelineMsg = ' ' + stylize(rec.msg, 'cyan');
-        }
-        delete rec.msg;
-
-        if (rec.req && typeof (rec.req) === 'object') {
-            var req = rec.req;
-            delete rec.req;
-            var headers = req.headers;
-            if (!headers) {
-                headers = '';
-            } else if (typeof (headers) === 'string') {
-                headers = '\n' + headers;
-            } else if (typeof (headers) === 'object') {
-                headers = '\n' + Object.keys(headers).map(function (h) {
-                    return h + ': ' + headers[h];
-                }).join('\n');
-            }
-            var s = format('%s %s HTTP/%s%s', req.method,
-                req.url,
-                req.httpVersion || '1.1',
-                headers
-            );
-            delete req.url;
-            delete req.method;
-            delete req.httpVersion;
-            delete req.headers;
-            if (req.body) {
-                s += '\n\n' + (typeof (req.body) === 'object'
-                    ? JSON.stringify(req.body, null, 2) : req.body);
-                delete req.body;
-            }
-            if (req.trailers && Object.keys(req.trailers) > 0) {
-                s += '\n' + Object.keys(req.trailers).map(function (t) {
-                    return t + ': ' + req.trailers[t];
-                }).join('\n');
-            }
-            delete req.trailers;
-            details.push(indent(s));
-            // E.g. for extra 'foo' field on 'req', add 'req.foo' at
-            // top-level. This *does* have the potential to stomp on a
-            // literal 'req.foo' key.
-            Object.keys(req).forEach(function (k) {
-                rec['req.' + k] = req[k];
-            })
-        }
-
-        if (rec.client_req && typeof (rec.client_req) === 'object') {
-            var client_req = rec.client_req;
-            delete rec.client_req;
-            var headers = client_req.headers;
-            var hostHeaderLine = '';
-            var s = '';
-            if (client_req.address) {
-                hostHeaderLine = '\nHost: ' + client_req.address;
-                if (client_req.port)
-                    hostHeaderLine += ':' + client_req.port;
-            }
-            delete client_req.headers;
-            delete client_req.address;
-            delete client_req.port;
-            s += format('%s %s HTTP/%s%s%s', client_req.method,
-                client_req.url,
-                client_req.httpVersion || '1.1',
-                hostHeaderLine,
-                (headers ?
-                    '\n' + Object.keys(headers).map(
-                        function (h) {
-                            return h + ': ' + headers[h];
-                        }).join('\n') :
-                    ''));
-            delete client_req.method;
-            delete client_req.url;
-            delete client_req.httpVersion;
-            if (client_req.body) {
-                s += '\n\n' + (typeof (client_req.body) === 'object' ?
-                    JSON.stringify(client_req.body, null, 2) :
-                    client_req.body);
-                delete client_req.body;
-            }
-            // E.g. for extra 'foo' field on 'client_req', add
-            // 'client_req.foo' at top-level. This *does* have the potential
-            // to stomp on a literal 'client_req.foo' key.
-            Object.keys(client_req).forEach(function (k) {
-                rec['client_req.' + k] = client_req[k];
-            })
-            details.push(indent(s));
-        }
-
-        function _res(res) {
-            var s = '';
-            if (res.statusCode !== undefined) {
-                s += format('HTTP/1.1 %s %s\n', res.statusCode,
-                    http.STATUS_CODES[res.statusCode]);
-                delete res.statusCode;
-            }
-            // Handle `res.header` or `res.headers` as either a string or
-            // and object of header key/value pairs. Prefer `res.header` if set
-            // (TODO: Why? I don't recall. Typical of restify serializer?
-            // Typical JSON.stringify of a core node HttpResponse?)
-            var headerTypes = {string: true, object: true};
-            var headers;
-            if (res.header && headerTypes[typeof (res.header)]) {
-                headers = res.header;
-                delete res.header;
-            } else if (res.headers && headerTypes[typeof (res.headers)]) {
-                headers = res.headers;
-                delete res.headers;
-            }
-            if (headers === undefined) {
-                /* pass through */
-            } else if (typeof (headers) === 'string') {
-                s += headers.trimRight();
-            } else {
-                s += Object.keys(headers).map(
-                    function (h) { return h + ': ' + headers[h]; }).join('\n');
-            }
-            if (res.body !== undefined) {
-                var body = (typeof (res.body) === 'object'
-                    ? JSON.stringify(res.body, null, 2) : res.body);
-                if (body.length > 0) { s += '\n\n' + body };
-                delete res.body;
-            } else {
-                s = s.trimRight();
-            }
-            if (res.trailer) {
-                s += '\n' + res.trailer;
-            }
-            delete res.trailer;
-            if (s) {
-                details.push(indent(s));
-            }
-            // E.g. for extra 'foo' field on 'res', add 'res.foo' at
-            // top-level. This *does* have the potential to stomp on a
-            // literal 'res.foo' key.
-            Object.keys(res).forEach(function (k) {
-                rec['res.' + k] = res[k];
-            });
-        }
-
-        if (rec.res && typeof (rec.res) === 'object') {
-            _res(rec.res);
-            delete rec.res;
-        }
-        if (rec.client_res && typeof (rec.client_res) === 'object') {
-            _res(rec.client_res);
-            delete rec.client_res;
-        }
-
-        if (rec.err && rec.err.stack) {
-            var err = rec.err
-            if (typeof (err.stack) !== 'string') {
-                details.push(indent(err.stack.toString()));
-            } else {
-                details.push(indent(err.stack));
-            }
-            delete err.message;
-            delete err.name;
-            delete err.stack;
-            // E.g. for extra 'foo' field on 'err', add 'err.foo' at
-            // top-level. This *does* have the potential to stomp on a
-            // literal 'err.foo' key.
-            Object.keys(err).forEach(function (k) {
-                rec['err.' + k] = err[k];
-            })
-            delete rec.err;
-        }
-
-        var leftover = Object.keys(rec);
-        for (var i = 0; i < leftover.length; i++) {
-            var key = leftover[i];
-            var value = rec[key];
-            var stringified = false;
-            if (typeof (value) !== 'string') {
-                value = JSON.stringify(value, null, 2);
-                stringified = true;
-            }
-            if (value.indexOf('\n') !== -1 || value.length > 50) {
-                details.push(indent(key + ': ' + value));
-            } else if (!stringified && (value.indexOf(' ') != -1 ||
-                value.length === 0))
-            {
-                extras.push(key + '=' + JSON.stringify(value));
-            } else {
-                extras.push(key + '=' + value);
-            }
-        }
-
-        extras = stylize(
-            (extras.length ? ' (' + extras.join(', ') + ')' : ''), 'XXX');
-        details = stylize(
-            (details.length ? details.join('\n    --\n') + '\n' : ''), 'XXX');
-        if (!short)
-            emit(format('%s %s: %s on %s%s:%s%s\n%s',
-                time,
-                level,
-                nameStr,
-                hostname || '<no-hostname>',
-                src,
-                onelineMsg,
-                extras,
-                details));
-        else
-            emit(format('%s %s %s:%s%s\n%s',
-                time,
-                level,
-                nameStr,
-                onelineMsg,
-                extras,
-                details));
-        break;
-
-    case OM_INSPECT:
-        emit(util.inspect(rec, false, Infinity, true) + '\n');
-        break;
-
-    case OM_BUNYAN:
-        emit(JSON.stringify(rec, null, 0) + '\n');
-        break;
-
-    case OM_JSON:
-        emit(JSON.stringify(rec, null, opts.jsonIndent) + '\n');
-        break;
-
-    case OM_SIMPLE:
-        /* JSSTYLED */
-        // 
<http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/SimpleLayout.html>
-        if (!isValidRecord(rec)) {
-            return emit(line + '\n');
-        }
-        emit(format('%s - %s\n',
-            upperNameFromLevel[rec.level] || 'LVL' + rec.level,
-            rec.msg));
-        break;
-    default:
-        throw new Error('unknown output mode: '+opts.outputMode);
-    }
-}
-
-
-var stdoutFlushed = true;
-function emit(s) {
-    try {
-        stdoutFlushed = stdout.write(s);
-    } catch (e) {
-        // Handle any exceptions in stdout writing in `stdout.on('error', 
...)`.
-    }
-}
-
-
-/**
- * A hacked up version of 'process.exit' that will first drain stdout
- * before exiting. *WARNING: This doesn't stop event processing.* IOW,
- * callers have to be careful that code following this call isn't
- * accidentally executed.
- *
- * In node v0.6 "process.stdout and process.stderr are blocking when they
- * refer to regular files or TTY file descriptors." However, this hack might
- * still be necessary in a shell pipeline.
- */
-function drainStdoutAndExit(code) {
-    if (_DEBUG) warn('(drainStdoutAndExit(%d))', code);
-    stdout.on('drain', function () {
-        cleanupAndExit(code);
-    });
-    if (stdoutFlushed) {
-        cleanupAndExit(code);
-    }
-}
-
-
-/**
- * Process all input from stdin.
- *
- * @params opts {Object} Bunyan options object.
- * @param stylize {Function} Output stylize function to use.
- * @param callback {Function} `function ()`
- */
-function processStdin(opts, stylize, callback) {
-    readingStdin = true;
-    var leftover = '';  // Left-over partial line from last chunk.
-    var stdin = process.stdin;
-    stdin.resume();
-    stdin.setEncoding('utf8');
-    stdin.on('data', function (chunk) {
-        var lines = chunk.split(/\r\n|\n/);
-        var length = lines.length;
-        if (length === 1) {
-            leftover += lines[0];
-            return;
-        }
-
-        if (length > 1) {
-            handleLogLine(null, leftover + lines[0], opts, stylize);
-        }
-        leftover = lines.pop();
-        length -= 1;
-        for (var i = 1; i < length; i++) {
-            handleLogLine(null, lines[i], opts, stylize);
-        }
-    });
-    stdin.on('end', function () {
-        if (leftover) {
-            handleLogLine(null, leftover, opts, stylize);
-            leftover = '';
-        }
-        callback();
-    });
-}
-
-
-/**
- * Process bunyan:log-* probes from the given pid.
- *
- * @params opts {Object} Bunyan options object.
- * @param stylize {Function} Output stylize function to use.
- * @param callback {Function} `function (code)`
- */
-function processPids(opts, stylize, callback) {
-    var leftover = '';  // Left-over partial line from last chunk.
-
-    /**
-     * Get the PIDs to dtrace.
-     *
-     * @param cb {Function} `function (errCode, pids)`
-     */
-    function getPids(cb) {
-        if (opts.pidsType === 'num') {
-            return cb(null, opts.pids);
-        }
-        if (process.platform === 'sunos') {
-            execFile('/bin/pgrep', ['-lf', opts.pids],
-                function (pidsErr, stdout, stderr) {
-                    if (pidsErr) {
-                        warn('bunyan: error getting PIDs for "%s": %s\n%s\n%s',
-                            opts.pids, pidsErr.message, stdout, stderr);
-                        return cb(1);
-                    }
-                    var pids = stdout.trim().split('\n')
-                        .map(function (line) {
-                            return line.trim().split(/\s+/)[0]
-                        })
-                        .filter(function (pid) {
-                            return Number(pid) !== process.pid
-                        });
-                    if (pids.length === 0) {
-                        warn('bunyan: error: no matching PIDs found for "%s"',
-                            opts.pids);
-                        return cb(2);
-                    }
-                    cb(null, pids);
-                }
-            );
-        } else {
-            var regex = opts.pids;
-            if (regex && /[a-zA-Z0-9_]/.test(regex[0])) {
-                // 'foo' -> '[f]oo' trick to exclude the 'grep' PID from its
-                // own search.
-                regex = '[' + regex[0] + ']' + regex.slice(1);
-            }
-            exec(format('ps -A -o pid,command | grep \'%s\'', regex),
-                function (pidsErr, stdout, stderr) {
-                    if (pidsErr) {
-                        warn('bunyan: error getting PIDs for "%s": %s\n%s\n%s',
-                            opts.pids, pidsErr.message, stdout, stderr);
-                        return cb(1);
-                    }
-                    var pids = stdout.trim().split('\n')
-                        .map(function (line) {
-                            return line.trim().split(/\s+/)[0];
-                        })
-                        .filter(function (pid) {
-                            return Number(pid) !== process.pid;
-                        });
-                    if (pids.length === 0) {
-                        warn('bunyan: error: no matching PIDs found for "%s"',
-                            opts.pids);
-                        return cb(2);
-                    }
-                    cb(null, pids);
-                }
-            );
-        }
-    }
-
-    getPids(function (errCode, pids) {
-        if (errCode) {
-            return callback(errCode);
-        }
-
-        var probes = pids.map(function (pid) {
-            if (!opts.level)
-                return format('bunyan%s:::log-*', pid);
-
-            var rval = [], l;
-
-            for (l in levelFromName) {
-                if (levelFromName[l] >= opts.level)
-                    rval.push(format('bunyan%s:::log-%s', pid, l));
-            }
-
-            if (rval.length != 0)
-                return rval.join(',');
-
-            warn('bunyan: error: level (%d) exceeds maximum logging level',
-                opts.level);
-            return drainStdoutAndExit(1);
-        }).join(',');
-        var argv = ['dtrace', '-Z', '-x', 'strsize=4k',
-            '-x', 'switchrate=10hz', '-qn',
-            format('%s{printf("%s", copyinstr(arg0))}', probes)];
-        //console.log('dtrace argv: %s', argv);
-        var dtrace = spawn(argv[0], argv.slice(1),
-            // Share the stderr handle to have error output come
-            // straight through. Only supported in v0.8+.
-            {stdio: ['pipe', 'pipe', process.stderr]});
-        dtrace.on('error', function (e) {
-            if (e.syscall === 'spawn' && e.errno === 'ENOENT') {
-                console.error('bunyan: error: could not spawn "dtrace" ' +
-                    '("bunyan -p" is only supported on platforms with 
dtrace)');
-            } else {
-                console.error('bunyan: error: unexpected dtrace error: %s', e);
-            }
-            callback(1);
-        })
-        child = dtrace; // intentionally global
-
-        function finish(code) {
-            if (leftover) {
-                handleLogLine(null, leftover, opts, stylize);
-                leftover = '';
-            }
-            callback(code);
-        }
-
-        dtrace.stdout.setEncoding('utf8');
-        dtrace.stdout.on('data', function (chunk) {
-            var lines = chunk.split(/\r\n|\n/);
-            var length = lines.length;
-            if (length === 1) {
-                leftover += lines[0];
-                return;
-            }
-            if (length > 1) {
-                handleLogLine(null, leftover + lines[0], opts, stylize);
-            }
-            leftover = lines.pop();
-            length -= 1;
-            for (var i = 1; i < length; i++) {
-                handleLogLine(null, lines[i], opts, stylize);
-            }
-        });
-
-        if (nodeSpawnSupportsStdio) {
-            dtrace.on('exit', finish);
-        } else {
-            // Fallback (for < v0.8) to pipe the dtrace process' stderr to
-            // this stderr. Wait for all of (1) process 'exit', (2) stderr
-            // 'end', and (2) stdout 'end' before returning to ensure all
-            // stderr is flushed (issue #54).
-            var returnCode = null;
-            var eventsRemaining = 3;
-            function countdownToFinish(code) {
-                returnCode = code;
-                eventsRemaining--;
-                if (eventsRemaining == 0) {
-                    finish(returnCode);
-                }
-            }
-            dtrace.stderr.pipe(process.stderr);
-            dtrace.stderr.on('end', countdownToFinish);
-            dtrace.stderr.on('end', countdownToFinish);
-            dtrace.on('exit', countdownToFinish);
-        }
-    });
-}
-
-
-/**
- * Process all input from the given log file.
- *
- * @param file {String} Log file path to process.
- * @params opts {Object} Bunyan options object.
- * @param stylize {Function} Output stylize function to use.
- * @param callback {Function} `function ()`
- */
-function processFile(file, opts, stylize, callback) {
-    var stream = fs.createReadStream(file);
-    if (/\.gz$/.test(file)) {
-        stream = stream.pipe(require('zlib').createGunzip());
-    }
-    // Manually decode streams - lazy load here as per node/lib/fs.js
-    var decoder = new (require('string_decoder').StringDecoder)('utf8');
-
-    streams[file].stream = stream;
-
-    stream.on('error', function (err) {
-        streams[file].done = true;
-        callback(err);
-    });
-
-    var leftover = '';  // Left-over partial line from last chunk.
-    stream.on('data', function (data) {
-        var chunk = decoder.write(data);
-        if (!chunk.length) {
-            return;
-        }
-        var lines = chunk.split(/\r\n|\n/);
-        var length = lines.length;
-        if (length === 1) {
-            leftover += lines[0];
-            return;
-        }
-
-        if (length > 1) {
-            handleLogLine(file, leftover + lines[0], opts, stylize);
-        }
-        leftover = lines.pop();
-        length -= 1;
-        for (var i = 1; i < length; i++) {
-            handleLogLine(file, lines[i], opts, stylize);
-        }
-    });
-
-    stream.on('end', function () {
-        streams[file].done = true;
-        if (leftover) {
-            handleLogLine(file, leftover, opts, stylize);
-            leftover = '';
-        } else {
-            emitNextRecord(opts, stylize);
-        }
-        callback();
-    });
-}
-
-
-/**
- * From node async module.
- */
-/* BEGIN JSSTYLED */
-function asyncForEach(arr, iterator, callback) {
-    callback = callback || function () {};
-    if (!arr.length) {
-        return callback();
-    }
-    var completed = 0;
-    arr.forEach(function (x) {
-        iterator(x, function (err) {
-            if (err) {
-                callback(err);
-                callback = function () {};
-            }
-            else {
-                completed += 1;
-                if (completed === arr.length) {
-                    callback();
-                }
-            }
-        });
-    });
-};
-/* END JSSTYLED */
-
-
-
-/**
- * Cleanup and exit properly.
- *
- * Warning: this doesn't stop processing, i.e. process exit might be delayed.
- * It is up to the caller to ensure that no subsequent bunyan processing
- * is done after calling this.
- *
- * @param code {Number} exit code.
- * @param signal {String} Optional signal name, if this was exitting because
- *    of a signal.
- */
-var cleanedUp = false;
-function cleanupAndExit(code, signal) {
-    // Guard one call.
-    if (cleanedUp) {
-        return;
-    }
-    cleanedUp = true;
-    if (_DEBUG) warn('(bunyan: cleanupAndExit)');
-
-    // Clear possibly interrupted ANSI code (issue #59).
-    if (usingAnsiCodes) {
-        stdout.write('\033[0m');
-    }
-
-    // Kill possible dtrace child.
-    if (child) {
-        child.kill(signal);
-    }
-
-    if (pager) {
-        // Let pager know that output is done, then wait for pager to exit.
-        stdout.end();
-        pager.on('exit', function (pagerCode) {
-            if (_DEBUG)
-                warn('(bunyan: pager exit -> process.exit(%s))',
-                    pagerCode || code);
-            process.exit(pagerCode || code);
-        });
-    } else {
-        if (_DEBUG) warn('(bunyan: process.exit(%s))', code);
-        process.exit(code);
-    }
-}
-
-
-
-//---- mainline
-
-process.on('SIGINT', function () {
-    /**
-     * Ignore SIGINT (Ctrl+C) if processing stdin -- we should process
-     * remaining output from preceding process in the pipeline and
-     * except *it* to close.
-     */
-    if (!readingStdin) {
-        cleanupAndExit(1, 'SIGINT');
-    }
-});
-process.on('SIGQUIT', function () { cleanupAndExit(1, 'SIGQUIT'); });
-process.on('SIGTERM', function () { cleanupAndExit(1, 'SIGTERM'); });
-process.on('SIGHUP', function () { cleanupAndExit(1, 'SIGHUP'); });
-
-process.on('uncaughtException', function (err) {
-    function _indent(s) {
-        var lines = s.split(/\r?\n/);
-        for (var i = 0; i < lines.length; i++) {
-            lines[i] = '*     ' + lines[i];
-        }
-        return lines.join('\n');
-    }
-
-    var title = encodeURIComponent(format(
-        'Bunyan %s crashed: %s', getVersion(), String(err)));
-    var e = console.error;
-    e('```');
-    e('* The Bunyan CLI crashed!');
-    e('*');
-    if (err.name === 'ReferenceError' && gUsingConditionOpts) {
-        /* BEGIN JSSTYLED */
-        e('* This crash was due to a "ReferenceError", which is often the 
result of given');
-        e('* `-c CONDITION` code that doesn\'t guard against undefined values. 
If that is');
-        /* END JSSTYLED */
-        e('* not the problem:');
-        e('*');
-    }
-    e('* Please report this issue and include the details below:');
-    e('*');
-    e('*    https://github.com/trentm/node-bunyan/issues/new?title=%s', title);
-    e('*');
-    e('* * *');
-    e('* platform:', process.platform);
-    e('* node version:', process.version);
-    e('* bunyan version:', getVersion());
-    e('* argv: %j', process.argv);
-    e('* log line: %j', currLine);
-    e('* stack:');
-    e(_indent(err.stack));
-    e('```');
-    process.exit(1);
-});
-
-
-function main(argv) {
-    try {
-        var opts = parseArgv(argv);
-    } catch (e) {
-        warn('bunyan: error: %s', e.message);
-        return drainStdoutAndExit(1);
-    }
-    if (opts.help) {
-        printHelp();
-        return;
-    }
-    if (opts.version) {
-        console.log('bunyan ' + getVersion());
-        return;
-    }
-    if (opts.pid && opts.args.length > 0) {
-        warn('bunyan: error: can\'t use both "-p PID" (%s) and file (%s) args',
-            opts.pid, opts.args.join(' '));
-        return drainStdoutAndExit(1);
-    }
-    if (opts.color === null) {
-        if (process.env.BUNYAN_NO_COLOR &&
-                process.env.BUNYAN_NO_COLOR.length > 0) {
-            opts.color = false;
-        } else {
-            opts.color = process.stdout.isTTY;
-        }
-    }
-    usingAnsiCodes = opts.color; // intentionally global
-    var stylize = (opts.color ? stylizeWithColor : stylizeWithoutColor);
-
-    // Pager.
-    var paginate = (
-        process.stdout.isTTY &&
-        process.stdin.isTTY &&
-        !opts.pids && // Don't page if following process output.
-        opts.args.length > 0 && // Don't page if no file args to process.
-        process.platform !== 'win32' &&
-        (nodeVer[0] > 0 || nodeVer[1] >= 8) &&
-        (opts.paginate === true ||
-            (opts.paginate !== false &&
-                (!process.env.BUNYAN_NO_PAGER ||
-                    process.env.BUNYAN_NO_PAGER.length === 0))));
-    if (paginate) {
-        var pagerCmd = process.env.PAGER || 'less';
-        /* JSSTYLED */
-        assert.ok(pagerCmd.indexOf('"') === -1 && pagerCmd.indexOf("'") === -1,
-            'cannot parse PAGER quotes yet');
-        var argv = pagerCmd.split(/\s+/g);
-        var env = objCopy(process.env);
-        if (env.LESS === undefined) {
-            // git's default is LESS=FRSX. I don't like the 'S' here because
-            // lines are *typically* wide with bunyan output and scrolling
-            // horizontally is a royal pain. Note a bug in Mac's `less -F`,
-            // such that SIGWINCH can kill it. If that rears too much then
-            // I'll remove 'F' from here.
-            env.LESS = 'FRX';
-        }
-        if (_DEBUG) warn('(pager: argv=%j, env.LESS=%j)', argv, env.LESS);
-        // `pager` and `stdout` intentionally global.
-        pager = spawn(argv[0], argv.slice(1),
-            // Share the stderr handle to have error output come
-            // straight through. Only supported in v0.8+.
-            {env: env, stdio: ['pipe', 1, 2]});
-        stdout = pager.stdin;
-
-        // Early termination of the pager: just stop.
-        pager.on('exit', function (pagerCode) {
-            if (_DEBUG) warn('(bunyan: pager exit)');
-            pager = null;
-            stdout.end()
-            stdout = process.stdout;
-            cleanupAndExit(pagerCode);
-        });
-    }
-
-    // Stdout error handling. (Couldn't setup until `stdout` was determined.)
-    stdout.on('error', function (err) {
-        if (_DEBUG) warn('(stdout error event: %s)', err);
-        if (err.code === 'EPIPE') {
-            drainStdoutAndExit(0);
-        } else if (err.toString() === 'Error: This socket is closed.') {
-            // Could get this if the pager closes its stdin, but hasn't
-            // exited yet.
-            drainStdoutAndExit(1);
-        } else {
-            warn(err);
-            drainStdoutAndExit(1);
-        }
-    });
-
-    var retval = 0;
-    if (opts.pids) {
-        processPids(opts, stylize, function (code) {
-            cleanupAndExit(code);
-        });
-    } else if (opts.args.length > 0) {
-        var files = opts.args;
-        files.forEach(function (file) {
-            streams[file] = { stream: null, records: [], done: false }
-        });
-        asyncForEach(files,
-            function (file, next) {
-                processFile(file, opts, stylize, function (err) {
-                    if (err) {
-                        warn('bunyan: %s', err.message);
-                        retval += 1;
-                    }
-                    next();
-                });
-            },
-            function (err) {
-                if (err) {
-                    warn('bunyan: unexpected error: %s', err.stack || err);
-                    return drainStdoutAndExit(1);
-                }
-                cleanupAndExit(retval);
-            }
-        );
-    } else {
-        processStdin(opts, stylize, function () {
-            cleanupAndExit(retval);
-        });
-    }
-}
-
-if (require.main === module) {
-    // HACK guard for <https://github.com/trentm/json/issues/24>.
-    // We override the `process.stdout.end` guard that core node.js puts in
-    // place. The real fix is that `.end()` shouldn't be called on stdout
-    // in node core. Node v0.6.9 fixes that. Only guard for v0.6.0..v0.6.8.
-    if ([0, 6, 0] <= nodeVer && nodeVer <= [0, 6, 8]) {
-        var stdout = process.stdout;
-        stdout.end = stdout.destroy = stdout.destroySoon = function () {
-            /* pass */
-        };
-    }
-
-    main(process.argv);
-}
diff --git a/node_modules/.bin/bunyan b/node_modules/.bin/bunyan
new file mode 120000
index 0000000..3555ac7
--- /dev/null
+++ b/node_modules/.bin/bunyan
@@ -0,0 +1 @@
+../bunyan/bin/bunyan
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/b0372a55/node_modules/.bin/escodegen
----------------------------------------------------------------------
diff --git a/node_modules/.bin/escodegen b/node_modules/.bin/escodegen
deleted file mode 100755
index a7c38aa..0000000
--- a/node_modules/.bin/escodegen
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/usr/bin/env node
-/*
-  Copyright (C) 2012 Yusuke Suzuki <[email protected]>
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
-  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*jslint sloppy:true node:true */
-
-var fs = require('fs'),
-    path = require('path'),
-    root = path.join(path.dirname(fs.realpathSync(__filename)), '..'),
-    esprima = require('esprima'),
-    escodegen = require(root),
-    optionator = require('optionator')({
-        prepend: 'Usage: escodegen [options] file...',
-        options: [
-            {
-                option: 'config',
-                alias: 'c',
-                type: 'String',
-                description: 'configuration json for escodegen'
-            }
-        ]
-    }),
-    args = optionator.parse(process.argv),
-    files = args._,
-    options,
-    esprimaOptions = {
-        raw: true,
-        tokens: true,
-        range: true,
-        comment: true
-    };
-
-if (files.length === 0) {
-    console.log(optionator.generateHelp());
-    process.exit(1);
-}
-
-if (args.config) {
-    try {
-        options = JSON.parse(fs.readFileSync(args.config, 'utf-8'));
-    } catch (err) {
-        console.error('Error parsing config: ', err);
-    }
-}
-
-files.forEach(function (filename) {
-    var content = fs.readFileSync(filename, 'utf-8'),
-        syntax = esprima.parse(content, esprimaOptions);
-
-    if (options.comment) {
-        escodegen.attachComments(syntax, syntax.comments, syntax.tokens);
-    }
-
-    console.log(escodegen.generate(syntax, options));
-});
-/* vim: set sw=4 ts=4 et tw=80 : */
diff --git a/node_modules/.bin/escodegen b/node_modules/.bin/escodegen
new file mode 120000
index 0000000..01a7c32
--- /dev/null
+++ b/node_modules/.bin/escodegen
@@ -0,0 +1 @@
+../escodegen/bin/escodegen.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/b0372a55/node_modules/.bin/esgenerate
----------------------------------------------------------------------
diff --git a/node_modules/.bin/esgenerate b/node_modules/.bin/esgenerate
deleted file mode 100755
index 449abcc..0000000
--- a/node_modules/.bin/esgenerate
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/usr/bin/env node
-/*
-  Copyright (C) 2012 Yusuke Suzuki <[email protected]>
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
-  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*jslint sloppy:true node:true */
-
-var fs = require('fs'),
-    path = require('path'),
-    root = path.join(path.dirname(fs.realpathSync(__filename)), '..'),
-    escodegen = require(root),
-    optionator = require('optionator')({
-        prepend: 'Usage: esgenerate [options] file.json ...',
-        options: [
-            {
-                option: 'config',
-                alias: 'c',
-                type: 'String',
-                description: 'configuration json for escodegen'
-            }
-        ]
-    }),
-    args = optionator.parse(process.argv),
-    files = args._,
-    options;
-
-if (files.length === 0) {
-    console.log(optionator.generateHelp());
-    process.exit(1);
-}
-
-if (args.config) {
-    try {
-        options = JSON.parse(fs.readFileSync(args.config, 'utf-8'))
-    } catch (err) {
-        console.error('Error parsing config: ', err);
-    }
-}
-
-files.forEach(function (filename) {
-    var content = fs.readFileSync(filename, 'utf-8');
-    console.log(escodegen.generate(JSON.parse(content), options));
-});
-/* vim: set sw=4 ts=4 et tw=80 : */
diff --git a/node_modules/.bin/esgenerate b/node_modules/.bin/esgenerate
new file mode 120000
index 0000000..7d0293e
--- /dev/null
+++ b/node_modules/.bin/esgenerate
@@ -0,0 +1 @@
+../escodegen/bin/esgenerate.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/b0372a55/node_modules/.bin/esparse
----------------------------------------------------------------------
diff --git a/node_modules/.bin/esparse b/node_modules/.bin/esparse
deleted file mode 100755
index 98bdbf4..0000000
--- a/node_modules/.bin/esparse
+++ /dev/null
@@ -1,126 +0,0 @@
-#!/usr/bin/env node
-/*
-  Copyright (c) jQuery Foundation, Inc. and Contributors, All Rights Reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
-  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*jslint sloppy:true node:true rhino:true */
-
-var fs, esprima, fname, content, options, syntax;
-
-if (typeof require === 'function') {
-    fs = require('fs');
-    esprima = require('esprima');
-} else if (typeof load === 'function') {
-    try {
-        load('esprima.js');
-    } catch (e) {
-        load('../esprima.js');
-    }
-}
-
-// Shims to Node.js objects when running under Rhino.
-if (typeof console === 'undefined' && typeof process === 'undefined') {
-    console = { log: print };
-    fs = { readFileSync: readFile };
-    process = { argv: arguments, exit: quit };
-    process.argv.unshift('esparse.js');
-    process.argv.unshift('rhino');
-}
-
-function showUsage() {
-    console.log('Usage:');
-    console.log('   esparse [options] file.js');
-    console.log();
-    console.log('Available options:');
-    console.log();
-    console.log('  --comment      Gather all line and block comments in an 
array');
-    console.log('  --loc          Include line-column location info for each 
syntax node');
-    console.log('  --range        Include index-based range for each syntax 
node');
-    console.log('  --raw          Display the raw value of literals');
-    console.log('  --tokens       List all tokens in an array');
-    console.log('  --tolerant     Tolerate errors on a best-effort basis 
(experimental)');
-    console.log('  -v, --version  Shows program version');
-    console.log();
-    process.exit(1);
-}
-
-if (process.argv.length <= 2) {
-    showUsage();
-}
-
-options = {};
-
-process.argv.splice(2).forEach(function (entry) {
-
-    if (entry === '-h' || entry === '--help') {
-        showUsage();
-    } else if (entry === '-v' || entry === '--version') {
-        console.log('ECMAScript Parser (using Esprima version', 
esprima.version, ')');
-        console.log();
-        process.exit(0);
-    } else if (entry === '--comment') {
-        options.comment = true;
-    } else if (entry === '--loc') {
-        options.loc = true;
-    } else if (entry === '--range') {
-        options.range = true;
-    } else if (entry === '--raw') {
-        options.raw = true;
-    } else if (entry === '--tokens') {
-        options.tokens = true;
-    } else if (entry === '--tolerant') {
-        options.tolerant = true;
-    } else if (entry.slice(0, 2) === '--') {
-        console.log('Error: unknown option ' + entry + '.');
-        process.exit(1);
-    } else if (typeof fname === 'string') {
-        console.log('Error: more than one input file.');
-        process.exit(1);
-    } else {
-        fname = entry;
-    }
-});
-
-if (typeof fname !== 'string') {
-    console.log('Error: no input file.');
-    process.exit(1);
-}
-
-// Special handling for regular expression literal since we need to
-// convert it to a string literal, otherwise it will be decoded
-// as object "{}" and the regular expression would be lost.
-function adjustRegexLiteral(key, value) {
-    if (key === 'value' && value instanceof RegExp) {
-        value = value.toString();
-    }
-    return value;
-}
-
-try {
-    content = fs.readFileSync(fname, 'utf-8');
-    syntax = esprima.parse(content, options);
-    console.log(JSON.stringify(syntax, adjustRegexLiteral, 4));
-} catch (e) {
-    console.log('Error: ' + e.message);
-    process.exit(1);
-}
diff --git a/node_modules/.bin/esparse b/node_modules/.bin/esparse
new file mode 120000
index 0000000..7423b18
--- /dev/null
+++ b/node_modules/.bin/esparse
@@ -0,0 +1 @@
+../esprima/bin/esparse.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/b0372a55/node_modules/.bin/esvalidate
----------------------------------------------------------------------
diff --git a/node_modules/.bin/esvalidate b/node_modules/.bin/esvalidate
deleted file mode 100755
index f522dec..0000000
--- a/node_modules/.bin/esvalidate
+++ /dev/null
@@ -1,199 +0,0 @@
-#!/usr/bin/env node
-/*
-  Copyright (c) jQuery Foundation, Inc. and Contributors, All Rights Reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in the
-      documentation and/or other materials provided with the distribution.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
-  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*jslint sloppy:true plusplus:true node:true rhino:true */
-/*global phantom:true */
-
-var fs, system, esprima, options, fnames, count;
-
-if (typeof esprima === 'undefined') {
-    // PhantomJS can only require() relative files
-    if (typeof phantom === 'object') {
-        fs = require('fs');
-        system = require('system');
-        esprima = require('./esprima');
-    } else if (typeof require === 'function') {
-        fs = require('fs');
-        esprima = require('esprima');
-    } else if (typeof load === 'function') {
-        try {
-            load('esprima.js');
-        } catch (e) {
-            load('../esprima.js');
-        }
-    }
-}
-
-// Shims to Node.js objects when running under PhantomJS 1.7+.
-if (typeof phantom === 'object') {
-    fs.readFileSync = fs.read;
-    process = {
-        argv: [].slice.call(system.args),
-        exit: phantom.exit
-    };
-    process.argv.unshift('phantomjs');
-}
-
-// Shims to Node.js objects when running under Rhino.
-if (typeof console === 'undefined' && typeof process === 'undefined') {
-    console = { log: print };
-    fs = { readFileSync: readFile };
-    process = { argv: arguments, exit: quit };
-    process.argv.unshift('esvalidate.js');
-    process.argv.unshift('rhino');
-}
-
-function showUsage() {
-    console.log('Usage:');
-    console.log('   esvalidate [options] file.js');
-    console.log();
-    console.log('Available options:');
-    console.log();
-    console.log('  --format=type  Set the report format, plain (default) or 
junit');
-    console.log('  -v, --version  Print program version');
-    console.log();
-    process.exit(1);
-}
-
-if (process.argv.length <= 2) {
-    showUsage();
-}
-
-options = {
-    format: 'plain'
-};
-
-fnames = [];
-
-process.argv.splice(2).forEach(function (entry) {
-
-    if (entry === '-h' || entry === '--help') {
-        showUsage();
-    } else if (entry === '-v' || entry === '--version') {
-        console.log('ECMAScript Validator (using Esprima version', 
esprima.version, ')');
-        console.log();
-        process.exit(0);
-    } else if (entry.slice(0, 9) === '--format=') {
-        options.format = entry.slice(9);
-        if (options.format !== 'plain' && options.format !== 'junit') {
-            console.log('Error: unknown report format ' + options.format + 
'.');
-            process.exit(1);
-        }
-    } else if (entry.slice(0, 2) === '--') {
-        console.log('Error: unknown option ' + entry + '.');
-        process.exit(1);
-    } else {
-        fnames.push(entry);
-    }
-});
-
-if (fnames.length === 0) {
-    console.log('Error: no input file.');
-    process.exit(1);
-}
-
-if (options.format === 'junit') {
-    console.log('<?xml version="1.0" encoding="UTF-8"?>');
-    console.log('<testsuites>');
-}
-
-count = 0;
-fnames.forEach(function (fname) {
-    var content, timestamp, syntax, name;
-    try {
-        content = fs.readFileSync(fname, 'utf-8');
-
-        if (content[0] === '#' && content[1] === '!') {
-            content = '//' + content.substr(2, content.length);
-        }
-
-        timestamp = Date.now();
-        syntax = esprima.parse(content, { tolerant: true });
-
-        if (options.format === 'junit') {
-
-            name = fname;
-            if (name.lastIndexOf('/') >= 0) {
-                name = name.slice(name.lastIndexOf('/') + 1);
-            }
-
-            console.log('<testsuite name="' + fname + '" errors="0" ' +
-                ' failures="' + syntax.errors.length + '" ' +
-                ' tests="' + syntax.errors.length + '" ' +
-                ' time="' + Math.round((Date.now() - timestamp) / 1000) +
-                '">');
-
-            syntax.errors.forEach(function (error) {
-                var msg = error.message;
-                msg = msg.replace(/^Line\ [0-9]*\:\ /, '');
-                console.log('  <testcase name="Line ' + error.lineNumber + ': 
' + msg + '" ' +
-                    ' time="0">');
-                console.log('    <error type="SyntaxError" message="' + 
error.message + '">' +
-                    error.message + '(' + name + ':' + error.lineNumber + ')' +
-                    '</error>');
-                console.log('  </testcase>');
-            });
-
-            console.log('</testsuite>');
-
-        } else if (options.format === 'plain') {
-
-            syntax.errors.forEach(function (error) {
-                var msg = error.message;
-                msg = msg.replace(/^Line\ [0-9]*\:\ /, '');
-                msg = fname + ':' + error.lineNumber + ': ' + msg;
-                console.log(msg);
-                ++count;
-            });
-
-        }
-    } catch (e) {
-        ++count;
-        if (options.format === 'junit') {
-            console.log('<testsuite name="' + fname + '" errors="1" 
failures="0" tests="1" ' +
-                ' time="' + Math.round((Date.now() - timestamp) / 1000) + 
'">');
-            console.log(' <testcase name="' + e.message + '" ' + ' time="0">');
-            console.log(' <error type="ParseError" message="' + e.message + 
'">' +
-                e.message + '(' + fname + ((e.lineNumber) ? ':' + e.lineNumber 
: '') +
-                ')</error>');
-            console.log(' </testcase>');
-            console.log('</testsuite>');
-        } else {
-            console.log('Error: ' + e.message);
-        }
-    }
-});
-
-if (options.format === 'junit') {
-    console.log('</testsuites>');
-}
-
-if (count > 0) {
-    process.exit(1);
-}
-
-if (count === 0 && typeof phantom === 'object') {
-    process.exit(0);
-}
diff --git a/node_modules/.bin/esvalidate b/node_modules/.bin/esvalidate
new file mode 120000
index 0000000..16069ef
--- /dev/null
+++ b/node_modules/.bin/esvalidate
@@ -0,0 +1 @@
+../esprima/bin/esvalidate.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/b0372a55/node_modules/.bin/hexo
----------------------------------------------------------------------
diff --git a/node_modules/.bin/hexo b/node_modules/.bin/hexo
deleted file mode 100755
index 7344e8d..0000000
--- a/node_modules/.bin/hexo
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/usr/bin/env node
-
-'use strict';
-
-require('hexo-cli')();
diff --git a/node_modules/.bin/hexo b/node_modules/.bin/hexo
new file mode 120000
index 0000000..3efb5f2
--- /dev/null
+++ b/node_modules/.bin/hexo
@@ -0,0 +1 @@
+../hexo/bin/hexo
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/b0372a55/node_modules/.bin/js-yaml
----------------------------------------------------------------------
diff --git a/node_modules/.bin/js-yaml b/node_modules/.bin/js-yaml
deleted file mode 100755
index e79186b..0000000
--- a/node_modules/.bin/js-yaml
+++ /dev/null
@@ -1,132 +0,0 @@
-#!/usr/bin/env node
-
-
-'use strict';
-
-/*eslint-disable no-console*/
-
-
-// stdlib
-var fs    = require('fs');
-
-
-// 3rd-party
-var argparse = require('argparse');
-
-
-// internal
-var yaml = require('..');
-
-
-////////////////////////////////////////////////////////////////////////////////
-
-
-var cli = new argparse.ArgumentParser({
-  prog:     'js-yaml',
-  version:  require('../package.json').version,
-  addHelp:  true
-});
-
-
-cli.addArgument([ '-c', '--compact' ], {
-  help:   'Display errors in compact mode',
-  action: 'storeTrue'
-});
-
-
-// deprecated (not needed after we removed output colors)
-// option suppressed, but not completely removed for compatibility
-cli.addArgument([ '-j', '--to-json' ], {
-  help:   argparse.Const.SUPPRESS,
-  dest:   'json',
-  action: 'storeTrue'
-});
-
-
-cli.addArgument([ '-t', '--trace' ], {
-  help:   'Show stack trace on error',
-  action: 'storeTrue'
-});
-
-cli.addArgument([ 'file' ], {
-  help:   'File to read, utf-8 encoded without BOM',
-  nargs:  '?',
-  defaultValue: '-'
-});
-
-
-////////////////////////////////////////////////////////////////////////////////
-
-
-var options = cli.parseArgs();
-
-
-////////////////////////////////////////////////////////////////////////////////
-
-function readFile(filename, encoding, callback) {
-  if (options.file === '-') {
-    // read from stdin
-
-    var chunks = [];
-
-    process.stdin.on('data', function (chunk) {
-      chunks.push(chunk);
-    });
-
-    process.stdin.on('end', function () {
-      return callback(null, Buffer.concat(chunks).toString(encoding));
-    });
-  } else {
-    fs.readFile(filename, encoding, callback);
-  }
-}
-
-readFile(options.file, 'utf8', function (error, input) {
-  var output, isYaml;
-
-  if (error) {
-    if (error.code === 'ENOENT') {
-      console.error('File not found: ' + options.file);
-      process.exit(2);
-    }
-
-    console.error(
-      options.trace && error.stack ||
-      error.message ||
-      String(error));
-
-    process.exit(1);
-  }
-
-  try {
-    output = JSON.parse(input);
-    isYaml = false;
-  } catch (err) {
-    if (err instanceof SyntaxError) {
-      try {
-        output = [];
-        yaml.loadAll(input, function (doc) { output.push(doc); }, {});
-        isYaml = true;
-
-        if (output.length === 0) output = null;
-        else if (output.length === 1) output = output[0];
-
-      } catch (e) {
-        if (options.trace && err.stack) console.error(e.stack);
-        else console.error(e.toString(options.compact));
-
-        process.exit(1);
-      }
-    } else {
-      console.error(
-        options.trace && err.stack ||
-        err.message ||
-        String(err));
-
-      process.exit(1);
-    }
-  }
-
-  if (isYaml) console.log(JSON.stringify(output, null, '  '));
-  else console.log(yaml.dump(output));
-});
diff --git a/node_modules/.bin/js-yaml b/node_modules/.bin/js-yaml
new file mode 120000
index 0000000..9dbd010
--- /dev/null
+++ b/node_modules/.bin/js-yaml
@@ -0,0 +1 @@
+../js-yaml/bin/js-yaml.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/b0372a55/node_modules/.bin/marked
----------------------------------------------------------------------
diff --git a/node_modules/.bin/marked b/node_modules/.bin/marked
deleted file mode 100755
index 64254fc..0000000
--- a/node_modules/.bin/marked
+++ /dev/null
@@ -1,187 +0,0 @@
-#!/usr/bin/env node
-
-/**
- * Marked CLI
- * Copyright (c) 2011-2013, Christopher Jeffrey (MIT License)
- */
-
-var fs = require('fs')
-  , util = require('util')
-  , marked = require('../');
-
-/**
- * Man Page
- */
-
-function help() {
-  var spawn = require('child_process').spawn;
-
-  var options = {
-    cwd: process.cwd(),
-    env: process.env,
-    setsid: false,
-    customFds: [0, 1, 2]
-  };
-
-  spawn('man',
-    [__dirname + '/../man/marked.1'],
-    options);
-}
-
-/**
- * Main
- */
-
-function main(argv, callback) {
-  var files = []
-    , options = {}
-    , input
-    , output
-    , arg
-    , tokens
-    , opt;
-
-  function getarg() {
-    var arg = argv.shift();
-
-    if (arg.indexOf('--') === 0) {
-      // e.g. --opt
-      arg = arg.split('=');
-      if (arg.length > 1) {
-        // e.g. --opt=val
-        argv.unshift(arg.slice(1).join('='));
-      }
-      arg = arg[0];
-    } else if (arg[0] === '-') {
-      if (arg.length > 2) {
-        // e.g. -abc
-        argv = arg.substring(1).split('').map(function(ch) {
-          return '-' + ch;
-        }).concat(argv);
-        arg = argv.shift();
-      } else {
-        // e.g. -a
-      }
-    } else {
-      // e.g. foo
-    }
-
-    return arg;
-  }
-
-  while (argv.length) {
-    arg = getarg();
-    switch (arg) {
-      case '--test':
-        return require('../test').main(process.argv.slice());
-      case '-o':
-      case '--output':
-        output = argv.shift();
-        break;
-      case '-i':
-      case '--input':
-        input = argv.shift();
-        break;
-      case '-t':
-      case '--tokens':
-        tokens = true;
-        break;
-      case '-h':
-      case '--help':
-        return help();
-      default:
-        if (arg.indexOf('--') === 0) {
-          opt = camelize(arg.replace(/^--(no-)?/, ''));
-          if (!marked.defaults.hasOwnProperty(opt)) {
-            continue;
-          }
-          if (arg.indexOf('--no-') === 0) {
-            options[opt] = typeof marked.defaults[opt] !== 'boolean'
-              ? null
-              : false;
-          } else {
-            options[opt] = typeof marked.defaults[opt] !== 'boolean'
-              ? argv.shift()
-              : true;
-          }
-        } else {
-          files.push(arg);
-        }
-        break;
-    }
-  }
-
-  function getData(callback) {
-    if (!input) {
-      if (files.length <= 2) {
-        return getStdin(callback);
-      }
-      input = files.pop();
-    }
-    return fs.readFile(input, 'utf8', callback);
-  }
-
-  return getData(function(err, data) {
-    if (err) return callback(err);
-
-    data = tokens
-      ? JSON.stringify(marked.lexer(data, options), null, 2)
-      : marked(data, options);
-
-    if (!output) {
-      process.stdout.write(data + '\n');
-      return callback();
-    }
-
-    return fs.writeFile(output, data, callback);
-  });
-}
-
-/**
- * Helpers
- */
-
-function getStdin(callback) {
-  var stdin = process.stdin
-    , buff = '';
-
-  stdin.setEncoding('utf8');
-
-  stdin.on('data', function(data) {
-    buff += data;
-  });
-
-  stdin.on('error', function(err) {
-    return callback(err);
-  });
-
-  stdin.on('end', function() {
-    return callback(null, buff);
-  });
-
-  try {
-    stdin.resume();
-  } catch (e) {
-    callback(e);
-  }
-}
-
-function camelize(text) {
-  return text.replace(/(\w)-(\w)/g, function(_, a, b) {
-    return a + b.toUpperCase();
-  });
-}
-
-/**
- * Expose / Entry Point
- */
-
-if (!module.parent) {
-  process.title = 'marked';
-  main(process.argv.slice(), function(err, code) {
-    if (err) throw err;
-    return process.exit(code || 0);
-  });
-} else {
-  module.exports = main;
-}
diff --git a/node_modules/.bin/marked b/node_modules/.bin/marked
new file mode 120000
index 0000000..a8d872e
--- /dev/null
+++ b/node_modules/.bin/marked
@@ -0,0 +1 @@
+../marked/bin/marked
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/b0372a55/node_modules/.bin/md2html
----------------------------------------------------------------------
diff --git a/node_modules/.bin/md2html b/node_modules/.bin/md2html
deleted file mode 100755
index f8ce1dd..0000000
--- a/node_modules/.bin/md2html
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/env node
-(function () {
-  "use strict";
-
-  var fs = require("fs")
-    , markdown = require("markdown").markdown
-    , nopt = require("nopt")
-    , stream
-    , opts
-    , buffer = ""
-    ;
-
-  opts = nopt(
-    { "dialect": [ "Gruber", "Maruku"]
-    , "help": Boolean
-    }
-  );
-
-  if (opts.help) {
-    var name = process.argv[1].split("/").pop()
-    console.warn( require("util").format(
-      "usage: %s [--dialect=DIALECT] FILE\n\nValid dialects are Gruber (the 
default) or Maruku",
-      name
-    ) );
-    process.exit(0);
-  }
-
-  var fullpath = opts.argv.remain[0];
-
-  if (fullpath && fullpath !== "-") {
-    stream = fs.createReadStream(fullpath);
-  } else {
-    stream = process.stdin;
-  }
-  stream.resume();
-  stream.setEncoding("utf8");
-
-  stream.on("error", function(error) {
-    console.error(error.toString());
-    process.exit(1);
-  });
-
-  stream.on("data", function(data) {
-    buffer += data;
-  });
-
-  stream.on("end", function() {
-    var html = markdown.toHTML(buffer, opts.dialect);
-    console.log(html);
-  });
-
-}())
diff --git a/node_modules/.bin/md2html b/node_modules/.bin/md2html
new file mode 120000
index 0000000..ebcab9a
--- /dev/null
+++ b/node_modules/.bin/md2html
@@ -0,0 +1 @@
+../markdown/bin/md2html.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/b0372a55/node_modules/.bin/mime
----------------------------------------------------------------------
diff --git a/node_modules/.bin/mime b/node_modules/.bin/mime
deleted file mode 100755
index 20b1ffe..0000000
--- a/node_modules/.bin/mime
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env node
-
-var mime = require('./mime.js');
-var file = process.argv[2];
-var type = mime.lookup(file);
-
-process.stdout.write(type + '\n');
-
diff --git a/node_modules/.bin/mime b/node_modules/.bin/mime
new file mode 120000
index 0000000..fbb7ee0
--- /dev/null
+++ b/node_modules/.bin/mime
@@ -0,0 +1 @@
+../mime/cli.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/b0372a55/node_modules/.bin/mkdirp
----------------------------------------------------------------------
diff --git a/node_modules/.bin/mkdirp b/node_modules/.bin/mkdirp
deleted file mode 100755
index d95de15..0000000
--- a/node_modules/.bin/mkdirp
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/env node
-
-var mkdirp = require('../');
-var minimist = require('minimist');
-var fs = require('fs');
-
-var argv = minimist(process.argv.slice(2), {
-    alias: { m: 'mode', h: 'help' },
-    string: [ 'mode' ]
-});
-if (argv.help) {
-    fs.createReadStream(__dirname + '/usage.txt').pipe(process.stdout);
-    return;
-}
-
-var paths = argv._.slice();
-var mode = argv.mode ? parseInt(argv.mode, 8) : undefined;
-
-(function next () {
-    if (paths.length === 0) return;
-    var p = paths.shift();
-    
-    if (mode === undefined) mkdirp(p, cb)
-    else mkdirp(p, mode, cb)
-    
-    function cb (err) {
-        if (err) {
-            console.error(err.message);
-            process.exit(1);
-        }
-        else next();
-    }
-})();
diff --git a/node_modules/.bin/mkdirp b/node_modules/.bin/mkdirp
new file mode 120000
index 0000000..017896c
--- /dev/null
+++ b/node_modules/.bin/mkdirp
@@ -0,0 +1 @@
+../mkdirp/bin/cmd.js
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin-site/blob/b0372a55/node_modules/.bin/ncp
----------------------------------------------------------------------
diff --git a/node_modules/.bin/ncp b/node_modules/.bin/ncp
deleted file mode 100755
index 388eaba..0000000
--- a/node_modules/.bin/ncp
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env node
-
-
-
-
-var ncp = require('../lib/ncp'),
-    args = process.argv.slice(2),
-    source, dest;
-
-if (args.length < 2) {
-  console.error('Usage: ncp [source] [destination] [--filter=filter] 
[--limit=concurrency limit]');
-  process.exit(1);
-}
-
-// parse arguments the hard way
-function startsWith(str, prefix) {
-  return str.substr(0, prefix.length) == prefix;
-}
-
-var options = {};
-args.forEach(function (arg) {
-  if (startsWith(arg, "--limit=")) {
-    options.limit = parseInt(arg.split('=', 2)[1], 10);
-  }
-  if (startsWith(arg, "--filter=")) {
-    options.filter = new RegExp(arg.split('=', 2)[1]);
-  }
-  if (startsWith(arg, "--stoponerr")) {
-    options.stopOnErr = true;
-  }
-});
-
-ncp.ncp(args[0], args[1], options, function (err) {
-  if (Array.isArray(err)) {
-    console.error('There were errors during the copy.');
-    err.forEach(function (err) {
-      console.error(err.stack || err.message);
-    });
-    process.exit(1);
-  }
-  else if (err) {
-    console.error('An error has occurred.');
-    console.error(err.stack || err.message);
-    process.exit(1);
-  }
-});
-
-
diff --git a/node_modules/.bin/ncp b/node_modules/.bin/ncp
new file mode 120000
index 0000000..1c02648
--- /dev/null
+++ b/node_modules/.bin/ncp
@@ -0,0 +1 @@
+../ncp/bin/ncp
\ No newline at end of file


Reply via email to