-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbash.js
More file actions
27 lines (23 loc) · 798 Bytes
/
bash.js
File metadata and controls
27 lines (23 loc) · 798 Bytes
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
var prompt = "prompt > "
//console.log(process);
var action = require("./command.js");
process.stdout.write(prompt);
process.stdin.setEncoding("utf8");
// The stdin 'data' event fires after a user types in a line
process.stdin.on('data', function (data) {
var cmdString = data.toString().trim();
var cmdList = cmdString.split(/\s*\|\s*/g);
var cmdCheck = cmdList[0].split(" ");
var arg = cmdCheck.slice(1);
var cmd = cmdCheck[0];
cmdList.unshift();
if(action[cmd]) {
action[cmd].call(action, arg, function (out) {
var func = action[cmdList.unshift()];
typeof func === "function" ? func(out, action[cmdList.unshift()] || action.newPrompt) : action.newPrompt();
});
} else {
process.stdout.write('You typed: ' + cmd + "\n");
action.newPrompt();
}
});