* Try to clean up terminal stuff set by doors @ exit
This commit is contained in:
parent
97c2e7adc0
commit
8c06325e63
|
@ -2,7 +2,6 @@
|
|||
'use strict';
|
||||
|
||||
const events = require('events');
|
||||
|
||||
const _ = require('lodash');
|
||||
const pty = require('ptyw.js');
|
||||
const decode = require('iconv-lite').decode;
|
||||
|
@ -80,6 +79,10 @@ function Door(client, exeInfo) {
|
|||
return cb(null);
|
||||
}
|
||||
};
|
||||
|
||||
this.doorExited = function() {
|
||||
self.emit('finished');
|
||||
};
|
||||
}
|
||||
|
||||
require('util').inherits(Door, events.EventEmitter);
|
||||
|
@ -90,7 +93,7 @@ Door.prototype.run = function() {
|
|||
this.prepareSocketIoServer( (err, sockServer) => {
|
||||
if(err) {
|
||||
this.client.log.warn( { error : err.toString() }, 'Failed executing door');
|
||||
return self.emit('finished');
|
||||
return self.doorExited();
|
||||
}
|
||||
|
||||
// Expand arg strings, e.g. {dropFile} -> DOOR32.SYS
|
||||
|
@ -140,7 +143,7 @@ Door.prototype.run = function() {
|
|||
|
||||
door.removeAllListeners();
|
||||
|
||||
self.emit('finished');
|
||||
return self.doorExited();
|
||||
});
|
||||
});
|
||||
};
|
||||
|
|
|
@ -11,7 +11,6 @@ let async = require('async');
|
|||
let assert = require('assert');
|
||||
let paths = require('path');
|
||||
let _ = require('lodash');
|
||||
let net = require('net');
|
||||
let mkdirs = require('fs-extra').mkdirs;
|
||||
|
||||
// :TODO: This should really be a system module... needs a little work to allow for such
|
||||
|
@ -20,8 +19,6 @@ exports.getModule = AbracadabraModule;
|
|||
|
||||
let activeDoorNodeInstances = {};
|
||||
|
||||
let doorInstances = {}; // name -> { count : <instCount>, { <nodeNum> : <inst> } }
|
||||
|
||||
exports.moduleInfo = {
|
||||
name : 'Abracadabra',
|
||||
desc : 'External BBS Door Module',
|
||||
|
@ -166,6 +163,18 @@ function AbracadabraModule(options) {
|
|||
const doorInstance = new door.Door(self.client, exeInfo);
|
||||
|
||||
doorInstance.once('finished', () => {
|
||||
//
|
||||
// Try to clean up various settings such as scroll regions that may
|
||||
// have been set within the door
|
||||
//
|
||||
self.client.term.rawWrite(
|
||||
ansi.normal() +
|
||||
ansi.goto(self.client.term.termHeight, self.client.term.termWidth) +
|
||||
ansi.setScrollRegion() +
|
||||
ansi.goto(self.client.term.termHeight, 0) +
|
||||
'\r\n\r\n'
|
||||
);
|
||||
|
||||
self.prevMenu();
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in New Issue