Mercurial > hg > rlgwebd
comparison webtty.js @ 3:bfdc775a574f
webtty.js: remove tty-module code.
author | John "Elwin" Edwards <elwin@sdf.org> |
---|---|
date | Sun, 06 May 2012 15:22:13 -0700 |
parents | 98bf7c94c954 |
children | d1b3c3af34d6 |
comparison
equal
deleted
inserted
replaced
2:98bf7c94c954 | 3:bfdc775a574f |
---|---|
1 #!/usr/bin/env node | 1 #!/usr/bin/env node |
2 var http = require('http'); | 2 var http = require('http'); |
3 var url = require('url'); | 3 var url = require('url'); |
4 var path = require('path'); | 4 var path = require('path'); |
5 var fs = require('fs'); | 5 var fs = require('fs'); |
6 //var tty = require("tty"); | |
7 var child_process = require("child_process"); | 6 var child_process = require("child_process"); |
8 | 7 |
9 var serveStaticRoot = "/home/elwin/hk/nodejs/rlg/s/"; | 8 var serveStaticRoot = "/home/elwin/hk/nodejs/rlg/s/"; |
10 var ptyhelp = "/home/elwin/hk/nodejs/rlg/ptywreck/ptyhelperC"; | 9 var ptyhelp = "/home/elwin/hk/nodejs/rlg/ptywreck/ptyhelperC"; |
11 var sessions = {}; | 10 var sessions = {}; |
21 if (!(key in env_dontuse)) | 20 if (!(key in env_dontuse)) |
22 childenv[key] = process.env[key]; | 21 childenv[key] = process.env[key]; |
23 } | 22 } |
24 // Should setsid get set? | 23 // Should setsid get set? |
25 var spawnopts = {"env": childenv, "cwd": process.env["HOME"]}; | 24 var spawnopts = {"env": childenv, "cwd": process.env["HOME"]}; |
26 //var pterm = tty.open("/bin/bash"); | |
27 this.child = child_process.spawn(ptyhelp, ["bash"], spawnopts); | 25 this.child = child_process.spawn(ptyhelp, ["bash"], spawnopts); |
28 var ss = this; | 26 var ss = this; |
29 /* Eventually we'll need to make sure the sessid isn't in use yet. */ | 27 /* Eventually we'll need to make sure the sessid isn't in use yet. */ |
30 this.sessid = sessid; | 28 this.sessid = sessid; |
31 //this.ptmx = pterm[0]; | |
32 //this.child = pterm[1]; | |
33 this.alive = true; | 29 this.alive = true; |
34 this.data = []; | 30 this.data = []; |
35 this.child.stdout.on("data", function (buf) { | 31 this.child.stdout.on("data", function (buf) { |
36 ss.data.push(buf); | 32 ss.data.push(buf); |
37 }); | 33 }); |
72 }; | 68 }; |
73 this.cleanup = function () { | 69 this.cleanup = function () { |
74 /* Call this when the child is dead. */ | 70 /* Call this when the child is dead. */ |
75 if (this.alive) | 71 if (this.alive) |
76 return; | 72 return; |
77 //ss.ptmx.destroy(); | |
78 /* Give the client a chance to read any leftover data. */ | 73 /* Give the client a chance to read any leftover data. */ |
79 if (ss.data.length > 0) | 74 if (ss.data.length > 0) |
80 setTimeout(ss.remove, 8000); | 75 setTimeout(ss.remove, 8000); |
81 else | 76 else |
82 ss.remove(); | 77 ss.remove(); |