Mercurial > hg > rlgwebd
annotate webtty @ 199:34e1bc4fd6b2
Some fixes to the documentation.
| author | John "Elwin" Edwards |
|---|---|
| date | Mon, 01 Feb 2016 21:20:12 -0500 |
| parents | 3bdee6371c3f |
| children |
| rev | line source |
|---|---|
|
0
bd412f63ce0d
Put this project under version control, finally.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff
changeset
|
1 #!/usr/bin/env node |
| 137 | 2 |
| 3 var localModules = '/usr/lib/node_modules/'; | |
|
0
bd412f63ce0d
Put this project under version control, finally.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff
changeset
|
4 var http = require('http'); |
|
bd412f63ce0d
Put this project under version control, finally.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff
changeset
|
5 var url = require('url'); |
|
bd412f63ce0d
Put this project under version control, finally.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff
changeset
|
6 var path = require('path'); |
|
bd412f63ce0d
Put this project under version control, finally.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff
changeset
|
7 var fs = require('fs'); |
| 137 | 8 var pty = require(path.join(localModules, "pty.js")); |
| 140 | 9 var child_process = require("child_process"); |
| 10 var webSocketServer = require(path.join(localModules, "websocket")).server; | |
|
0
bd412f63ce0d
Put this project under version control, finally.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff
changeset
|
11 |
| 137 | 12 var serveStaticRoot = fs.realpathSync("."); |
|
0
bd412f63ce0d
Put this project under version control, finally.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff
changeset
|
13 var sessions = {}; |
| 153 | 14 var nsessid = 0; |
|
0
bd412f63ce0d
Put this project under version control, finally.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff
changeset
|
15 |
|
2
98bf7c94c954
webtty.js: set up the environment and working directory.
John "Elwin" Edwards <elwin@sdf.org>
parents:
0
diff
changeset
|
16 var env_dontuse = {"TMUX": true, "TMUX_PANE": true}; |
|
98bf7c94c954
webtty.js: set up the environment and working directory.
John "Elwin" Edwards <elwin@sdf.org>
parents:
0
diff
changeset
|
17 |
|
0
bd412f63ce0d
Put this project under version control, finally.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff
changeset
|
18 /* Constructor for TermSessions. Note that it opens the terminal and |
|
bd412f63ce0d
Put this project under version control, finally.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff
changeset
|
19 * adds itself to the sessions dict. |
|
bd412f63ce0d
Put this project under version control, finally.
John "Elwin" Edwards <elwin@sdf.org>
parents:
diff
changeset
|
20 */ |
| 140 | 21 function TermSessionWS(conn, h, w) { |
| 22 var ss = this; | |
| 23 /* Set up the sizes. */ | |
| 24 w = Math.floor(Number(w)); | |
| 25 if (!(w > 0 && w < 256)) | |
| 26 w = 80; | |
| 27 this.w = w; | |
| 28 h = Math.floor(Number(h)); | |
| 29 if (!(h > 0 && h < 256)) | |
| 30 h = 25; | |
| 31 this.h = h; | |
| 32 this.conn = conn; | |
| 33 /* Customize the environment. */ | |
| 34 var childenv = {}; | |
| 35 for (var key in process.env) { | |
| 36 if (!(key in env_dontuse)) | |
| 37 childenv[key] = process.env[key]; | |
| 38 } | |
| 39 var spawnopts = {"env": childenv, "cwd": process.env["HOME"], | |
| 40 "rows": this.h, "cols": this.w}; | |
| 41 this.term = pty.spawn("bash", [], spawnopts); | |
