update files

This commit is contained in:
nuintun 2015-12-02 16:50:31 +08:00
parent 0de8de60c8
commit 3671a3c456
2 changed files with 34 additions and 17 deletions

View File

@ -161,18 +161,21 @@ module.exports = Vue.component('app-main', {
context.expandCommand = trigger && trigger.contains(target);
}, false);
window.TERMSTR = '';
ipc.on('emulator', function (event, type, project, data){
worker.postMessage({ action: 'write', name: project.name, data: data + '' });
window.TERMSTR += JSON.stringify(data.toString()) + '\n';
switch (type) {
case 'data':
data = data.toString();
break;
case 'error':
data = '\u001b[31m发生错误 \u001b[0m' + data.toString();
break;
case 'close':
data = '\u001b[32m命令执行完成\u001b[0m';
break;
}
worker.postMessage({ action: 'write', name: project.name, data: data.toString() });
// event.sender.send('emulator', project, 'stop');
});
window.doWrite = function (){
require('fs').writeFile('./screen.text', window.TERMSTR);
};
},
ready: function (){
var context = this;
@ -183,8 +186,6 @@ module.exports = Vue.component('app-main', {
}
};
window.worker = worker;
openXTerm(this.project.name);
}
});

View File

@ -6,6 +6,7 @@
importScripts('../../terminal/index.js');
var ACTIVE;
var RUNTIMECACHE = {};
function send(name, xterm){
@ -16,22 +17,37 @@ function send(name, xterm){
}
onmessage = function (event){
var xterm;
var message = event.data;
switch (message.action) {
case 'open':
RUNTIMECACHE[message.name] = RUNTIMECACHE[message.name] || new AnsiTerminal(120, 60, 0);
send(message.name, RUNTIMECACHE[message.name]);
xterm = RUNTIMECACHE[message.name];
if (!xterm) {
xterm = new AnsiTerminal(120, 60, 0);
xterm.newline_mode = true;
RUNTIMECACHE[message.name] = xterm;
}
ACTIVE = message.name;
send(message.name, xterm);
break;
case 'close':
delete RUNTIMECACHE[message.name];
break;
case 'write':
var xterm = RUNTIMECACHE[message.name];
xterm = RUNTIMECACHE[message.name];
if (ACTIVE === message.name) {
xterm.write(message.data);
send(message.name, xterm);
} else {
setTimeout(function (){
xterm.write(message.data);
}, 16);
}
break;
}
};