aboutsummaryrefslogtreecommitdiff
path: root/src/command/commands.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/command/commands.js')
-rw-r--r--src/command/commands.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/command/commands.js b/src/command/commands.js
new file mode 100644
index 0000000..f76af01
--- /dev/null
+++ b/src/command/commands.js
@@ -0,0 +1,55 @@
+function execute(output, command) {
+ var notImplemented = function(name) {
+ output.error('"' + name + '"' + ' is not implemented.');
+ };
+ var args = command.split(' ');
+
+ try {
+ var closure = eval(args[0]);
+
+ if ( typeof closure === 'function' ) {
+ args.shift();
+ closure(output, args);
+ } else {
+ notImplemented(args[0]);
+ }
+ } catch (exception) {
+ notImplemented(args[0]);
+ }
+}
+
+function exec(output, args) {
+ try {
+ var result = eval(args.join(' '));
+
+ if ( typeof result !== 'undefined' ) {
+ output.log(result);
+ }
+ } catch (exception) {
+ output.error(exception);
+ }
+}
+
+function jump(output, index) {
+ terminalList.selectItem(index);
+}
+
+function kill(output, index) {
+ terminalList.get(index).reset();
+}
+
+function next() {
+ terminalList.selectNext();
+}
+
+function prev() {
+ terminalList.selectPrev();
+}
+
+function ls(output) {
+ terminalList.iterate(function(item) {
+ if ( item.terminal !== null ) {
+ output.log(item.index + ': ' + item.terminal.program);
+ }
+ });
+}