I try to build a bash terminal via web with Node.js and socket.io, and I need know if a command is finished. Some command like 'cd someDirectory' don't emit a output and I don't know if it finished. How to know if a command if finished? If posible set a timeout for each command? I have the following code:
var shell = spawn('/bin/bash');
var stdin = shell.stdin;
shell.on('exit', function() {
socket.disconnect();
});
shell.on('close',function(){
console.log('Close');
});
shell['stdout'].setEncoding('ascii');
shell['stdout'].on('data', function(data) {
socket.emit('stdout', data);
});
shell['stderr'].setEncoding('ascii');
shell['stderr'].on('data', function(data) {
socket.emit('stderr', data);
});
socket.on('stdin', function(command) {
stdin.write(command+"\n") || socket.emit('disable');
});
stdin.on('drain', function() {
socket.emit('enable');
});
stdin.on('error', function(exception) {
socket.emit('error', String(exception));
});
Thanks in advance.
via Francisco Martin
No comments:
Post a Comment