-
Notifications
You must be signed in to change notification settings - Fork 0
/
terminal.js
89 lines (65 loc) · 1.96 KB
/
terminal.js
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
$(document).keypress (function(e){
e.preventDefault();
getInput(e);
});
var myText = "";
var prompt = "user@wherever>‌"
function keyP(e){
console.log(String.fromCharCode(e.keyCode));
var keynum;
if(window.event){
keynum = e.keyCode;
}else
if(e.which){
keynum = e.which;
}
return keynum;
}
var specials = ["<",">","<br>"];
function isEscapee(key, escapees){
if (escapees.indexOf(String.fromCharCode(key)) !== -1){
return true;
}
return false;
}
function getInput(e){
if (e.keycode == 39){
}
var escapees = "\.\'\"\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:\-\\\&";
var key = keyP(e);
if (key === 13){
myText= myText+"<br>"+prompt;
}
else if (key == 60){
myText = myText+"<";
} else if (key == 62){
myText = myText+">";
} else if (key == 8){
if (specials.indexOf(myText.substring(myText.length-4, myText.length)) !== -1){
myText= myText.substring(0, myText.length-4);
}else if (prompt.indexOf(myText.substring(myText.length-prompt.length, myText.length)) !== -1){
//do nothing for now I guess.
}else if (isEscapee(myText.substring(myText.length-1, myText.length), escapees)){
myText= myText.substring(0, myText.length-2);
} else {
myText = myText.substring(0, myText.length - 1);
}
} else {
if (isEscapee(key, escapees)){
myText= myText+String.fromCharCode(key)+"‌";
}
else{
myText = myText+String.fromCharCode(key);
}
}
$("#terminal").scrollTop($("#terminal")[0].scrollHeight);
}
function writeFlashOff(){
$("#terminal").html(prompt+myText+"‌");
setTimeout(writeFlashOn, 500);
}
function writeFlashOn(){
$("#terminal").html(prompt+myText+"■");
setTimeout(writeFlashOff, 500);
}
writeFlashOff();