|
/** |
|
* Requires node v0.7.7 or greater. |
|
* |
|
* To connect: $ curl -sSNT. localhost:8000 |
|
*/ |
|
|
|
var http = require('http') |
|
, repl = require('repl') |
|
, buf0 = new Buffer([0]) |
|
|
|
var server = http.createServer(function (req, res) { |
|
res.setHeader('content-type', 'multipart/octet-stream') |
|
|
|
res.write('Welcome to the Fun House\r\n') |
|
repl.start({ |
|
prompt: 'curl repl> ' |
|
, input: req |
|
, output: res |
|
, terminal: false |
|
, useColors: true |
|
, useGlobal: false |
|
}) |
|
|
|
// log |
|
console.log(req.headers['user-agent']) |
|
|
|
// hack to thread stdin and stdout |
|
// simultaneously in curl's single thread |
|
var iv = setInterval(function () { |
|
res.write(buf0) |
|
}, 100) |
|
|
|
res.connection.on('end', function () { |
|
clearInterval(iv) |
|
}) |
|
}) |
|
server.listen(8000) |