Files
tankz/tasks/debug.js

48 lines
1.4 KiB
JavaScript
Executable File

const gulp = require('gulp');
const gutil = require('gulp-util');
const col = gutil.colors;
const net = require('net');
const through = require('through2');
const color = (level) => {
return {
'[DEBUG]': col.white,
'[INFO]': col.cyan,
'[ERROR]': col.red,
'[WARNING]': col.yellow,
}[level] || col.reset;
};
const log = (line) => {
const result = line.split(' ');
console.log(col.gray(result[0]) + ' ' + color(result[1])(result.slice(1).join(' ')));
};
module.exports = () => {
return through.obj(function (file, enc, callback) {
const debug = file.debug;
if (!file.debug) {
this.emit('end');
callback();
return;
}
const server = net.createServer((socket) => {
socket.on("data", (data) => {
const lines = data.toString().split('\n');
for (let line of lines) if (line.length > 2) {
log(line);
}
});
socket.on("close", () => {
socket.destroy();
server.close();
this.emit('end');
callback();
});
});
gutil.log(col.green('[debug]'), col.cyan('listen on'), col.magenta(`${debug.host}:${debug.port}`));
server.listen(debug.port, debug.host);
})
};
module.exports.log = log;