blob: 399f0b1de2a39e8605a83db773e71d3a4af0d6ff (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
function execute(output, command) {
var notImplemented = function(name) {
output.error('"' + name + '"' + ' is not implemented.');
};
var args = command.trim().split(' ');
try {
var closure = eval(args[0]);
if ( typeof closure === 'function' ) {
args.shift();
closure(output, args);
} else {
notImplemented(args[0]);
}
} catch (exception) {
if ( exception instanceof ReferenceError ) {
notImplemented(args[0]);
} else {
output.error(exception);
}
}
}
function exec(output, args) {
try {
var result = eval(args.join(' '));
switch ( typeof result ) {
case 'string': {
output.log(result);
break;
}
case 'number': {
output.log(result);
break;
}
case 'object': {
output.log(JSON.stringify(result));
break;
}
}
} catch (exception) {
output.error(exception);
}
}
function ls(output) {
terminalList.iterate(function(item) {
if ( item.terminal !== null ) {
output.log(
item.index + ': ' + item.terminal.program +
' (' + item.terminal.getPID() + ')'
);
}
});
}
function set(output, args) {
switch ( args.length ) {
case 0: {
Object.keys(settings).filter(
function(element) {
return element !== 'objectName'
&& typeof settings[element] !== 'function';
}
).forEach(output.log);
break;
}
case 1: {
Object.keys(settings[args[0]]).filter(
function(element) {
return element !== 'objectName'
&& element !== 'category'
&& typeof settings[args[0]][element] !== 'function';
}
).forEach(output.log);
break;
}
case 2: {
output.log(settings.read(args[0], args[1]));
break;
}
case 3: {
settings.set(args[0], args[1], args[2]);
break;
}
default: {
output.error('Wrong count of arguments.');
break;
}
}
}
function jump(output, index) {
terminalList.selectItem(index);
}
function kill(output, index) {
if ( !terminalList.get(index).terminate() ) {
output.error("Failed to terminate process.");
}
}
function reset(output, index) {
terminalList.get(index).reset();
}
function next() {
terminalList.selectNext();
}
function prev() {
terminalList.selectPrev();
}
function q() {
Qt.quit();
}
function pwd(output) {
var terminal = terminalList.getCurrent().terminal;
if ( terminal !== null ) {
output.log(cwd.currentOfPID(terminal.getPID()));
} else {
output.error('No running session selected.');
}
}
|