Skip to content

Instantly share code, notes, and snippets.

@itayw
Forked from TooTallNate/repl-client.js
Created November 26, 2013 11:19
Show Gist options
  • Save itayw/7656798 to your computer and use it in GitHub Desktop.
Save itayw/7656798 to your computer and use it in GitHub Desktop.

Revisions

  1. @TooTallNate TooTallNate revised this gist Jun 26, 2012. 1 changed file with 2 additions and 4 deletions.
    6 changes: 2 additions & 4 deletions repl-client.js
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,4 @@
    var net = require('net')
    var readline = require('readline')

    var sock = net.connect(1337)

    @@ -22,9 +21,8 @@ process.stdin.on('end', function () {
    console.log()
    })

    readline.emitKeypressEvents(process.stdin)
    process.stdin.on('keypress', function (char, key) {
    if (key && key.ctrl && key.name == 'd') {
    process.stdin.on('data', function (b) {
    if (b.length === 1 && b[0] === 4) {
    process.stdin.emit('end')
    }
    })
  2. @TooTallNate TooTallNate revised this gist Mar 27, 2012. 1 changed file with 2 additions and 3 deletions.
    5 changes: 2 additions & 3 deletions repl-client.js
    Original file line number Diff line number Diff line change
    @@ -11,10 +11,9 @@ sock.on('connect', function () {
    process.stdin.setRawMode(true)
    })

    sock.on('close', function () {
    sock.on('close', function done () {
    process.stdin.setRawMode(false)
    process.stdin.pause()
    sock.removeListener('end', done)
    sock.removeListener('close', done)
    })

    @@ -28,4 +27,4 @@ process.stdin.on('keypress', function (char, key) {
    if (key && key.ctrl && key.name == 'd') {
    process.stdin.emit('end')
    }
    })
    })
  3. @TooTallNate TooTallNate revised this gist Mar 27, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion repl-client.js
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,7 @@
    var net = require('net')
    var readline = require('readline')

    var sock = net.createConnection(1337)
    var sock = net.connect(1337)

    process.stdin.pipe(sock)
    sock.pipe(process.stdout)
  4. @TooTallNate TooTallNate revised this gist Mar 26, 2012. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions repl-server.js
    Original file line number Diff line number Diff line change
    @@ -4,9 +4,9 @@ var net = require('net')
    net.createServer(function (socket) {
    var r = repl.start({
    prompt: 'socket '+socket.remoteAddress+':'+socket.remotePort+'> '
    , socket: socket
    , input: socket
    , output: socket
    , terminal: true
    , useColors: true
    , useGlobal: false
    })
    r.on('exit', function () {
  5. @TooTallNate TooTallNate revised this gist Mar 26, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion repl-server.js
    Original file line number Diff line number Diff line change
    @@ -5,7 +5,7 @@ net.createServer(function (socket) {
    var r = repl.start({
    prompt: 'socket '+socket.remoteAddress+':'+socket.remotePort+'> '
    , socket: socket
    , enabled: true
    , terminal: true
    , useColors: true
    , useGlobal: false
    })
  6. @TooTallNate TooTallNate created this gist Mar 26, 2012.
    31 changes: 31 additions & 0 deletions repl-client.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,31 @@
    var net = require('net')
    var readline = require('readline')

    var sock = net.createConnection(1337)

    process.stdin.pipe(sock)
    sock.pipe(process.stdout)

    sock.on('connect', function () {
    process.stdin.resume();
    process.stdin.setRawMode(true)
    })

    sock.on('close', function () {
    process.stdin.setRawMode(false)
    process.stdin.pause()
    sock.removeListener('end', done)
    sock.removeListener('close', done)
    })

    process.stdin.on('end', function () {
    sock.destroy()
    console.log()
    })

    readline.emitKeypressEvents(process.stdin)
    process.stdin.on('keypress', function (char, key) {
    if (key && key.ctrl && key.name == 'd') {
    process.stdin.emit('end')
    }
    })
    16 changes: 16 additions & 0 deletions repl-server.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,16 @@
    var repl = require('repl')
    var net = require('net')

    net.createServer(function (socket) {
    var r = repl.start({
    prompt: 'socket '+socket.remoteAddress+':'+socket.remotePort+'> '
    , socket: socket
    , enabled: true
    , useColors: true
    , useGlobal: false
    })
    r.on('exit', function () {
    socket.end()
    })
    r.context.socket = socket
    }).listen(1337)