diff --git a/bin/cloudcmd.js b/bin/cloudcmd.js index 43538b9d..fac1a4ee 100755 --- a/bin/cloudcmd.js +++ b/bin/cloudcmd.js @@ -56,6 +56,10 @@ case '--help': help(); break; + + case '--repl': + repl(); + break; } function version() { @@ -100,4 +104,10 @@ console.log('\n' + site); } + function repl() { + console.log('REPL mode enabled (telnet localhost 1337)'); + require(DIR_LIB + '/server/repl'); + start(); + } + })(); diff --git a/lib/server/repl.js b/lib/server/repl.js new file mode 100644 index 00000000..36fd0c8d --- /dev/null +++ b/lib/server/repl.js @@ -0,0 +1,22 @@ +(function() { + 'use strict'; + + var repl = require('repl'), + net = require('net'); + +module.exports = net.createServer(function (socket) { + var r = repl.start({ + prompt: '[' + process.pid + '] ' +socket.remoteAddress+':'+socket.remotePort+'> ', + input: socket, + output: socket, + terminal: true, + useGlobal: false + }); + + r.on('exit', function () { + socket.end(); + }); + r.context.socket = socket; +}).listen(1337); + +})();