2022-06-11 22:12:19 +02:00
|
|
|
import { Socket } from 'socket.io';
|
2022-06-12 09:38:38 +02:00
|
|
|
import { append } from './append';
|
2022-06-12 12:41:52 +02:00
|
|
|
import { beep } from './beep';
|
2022-06-12 09:38:38 +02:00
|
|
|
import { cat } from './cat';
|
|
|
|
import { cd } from './cd';
|
|
|
|
import { clear } from './clear';
|
|
|
|
import { cp } from './cp';
|
|
|
|
import { echo } from './echo';
|
|
|
|
import { exec } from './exec';
|
2022-06-17 21:06:49 +02:00
|
|
|
import { faq } from './faq';
|
2022-06-12 09:38:38 +02:00
|
|
|
import { help } from './help';
|
2022-06-17 21:06:49 +02:00
|
|
|
//import { loadsess } from './loadsess';
|
2022-06-12 09:38:38 +02:00
|
|
|
import { ls } from './ls';
|
|
|
|
import { man } from './man';
|
|
|
|
import { mkdir } from './mkdir';
|
|
|
|
import { mv } from './mv';
|
|
|
|
import { overwrite } from './overwrite';
|
|
|
|
import { pwd } from './pwd';
|
|
|
|
import { rm } from './rm';
|
|
|
|
import { rmdir } from './rmdir';
|
2022-06-17 21:06:49 +02:00
|
|
|
//import { savesess } from './savesess';
|
2022-06-12 09:38:38 +02:00
|
|
|
import { screenshot } from './screenshot';
|
|
|
|
import { spam } from './spam';
|
|
|
|
import { touch } from './touch';
|
|
|
|
import { wee } from './wee';
|
|
|
|
import { woo } from './woo';
|
2022-06-12 12:41:52 +02:00
|
|
|
|
|
|
|
function sendbuffer(socket:Socket, bufferx: { [id: string]: string }, forcefulload:boolean) {
|
|
|
|
var bufx = bufferx[socket.id];
|
|
|
|
//add placeholder character(reserved unicode) for blinking cursor in client;
|
|
|
|
bufx += "\u2588";
|
|
|
|
if(forcefulload) {
|
|
|
|
socket.emit('buffer', bufx);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
socket.emit('bufferx', bufx);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
function resolveCommand(commandname:string, socket:Socket, args:string[], buffer:{ [id: string]: string }, sessions:any, filesystem:any, curdir:any, curdirx:any):string {
|
|
|
|
var bufko = "";
|
2022-06-11 22:12:19 +02:00
|
|
|
switch (commandname) {
|
|
|
|
case "help":
|
2022-06-12 12:41:52 +02:00
|
|
|
bufko += help();
|
2022-06-11 22:12:19 +02:00
|
|
|
break;
|
|
|
|
case "man":
|
2022-06-12 12:41:52 +02:00
|
|
|
bufko += man(args);
|
2022-06-12 09:38:38 +02:00
|
|
|
break; //implement more commands
|
2022-06-12 12:41:52 +02:00
|
|
|
case "beep":
|
|
|
|
bufko += beep(socket);
|
|
|
|
break;
|
2022-06-17 21:06:49 +02:00
|
|
|
case "faq":
|
|
|
|
bufko += faq();
|
|
|
|
break;
|
2022-06-11 22:12:19 +02:00
|
|
|
case "screenshot":
|
2022-06-12 12:41:52 +02:00
|
|
|
bufko += screenshot(args, curdir, buffer, socket);
|
2022-06-11 22:12:19 +02:00
|
|
|
break;
|
|
|
|
case "append":
|
2022-06-12 12:41:52 +02:00
|
|
|
bufko += append(args, curdir[socket.id]);
|
2022-06-12 09:38:38 +02:00
|
|
|
break;
|
|
|
|
case "overwrite":
|
2022-06-12 12:41:52 +02:00
|
|
|
bufko += overwrite(args, curdir[socket.id]);
|
2022-06-11 22:12:19 +02:00
|
|
|
break;
|
|
|
|
case "rm":
|
2022-06-12 12:41:52 +02:00
|
|
|
bufko += rm(args, curdir, socket);
|
2022-06-11 22:12:19 +02:00
|
|
|
break;
|
|
|
|
case "mv":
|
2022-06-12 12:41:52 +02:00
|
|
|
bufko += mv(args, curdir[socket.id]);
|
2022-06-11 22:12:19 +02:00
|
|
|
break;
|
|
|
|
case "cp":
|
2022-06-12 12:41:52 +02:00
|
|
|
bufko += cp(args, curdir[socket.id]);
|
2022-06-11 22:12:19 +02:00
|
|
|
break;
|
2022-06-12 09:38:38 +02:00
|
|
|
case "mkdir":
|
2022-06-12 12:41:52 +02:00
|
|
|
bufko += mkdir(args, curdir[socket.id]);
|
2022-06-12 09:38:38 +02:00
|
|
|
break;
|
2022-06-11 22:12:19 +02:00
|
|
|
case "rmdir":
|
2022-06-12 12:41:52 +02:00
|
|
|
bufko += rmdir(args, curdir, socket);
|
2022-06-11 22:12:19 +02:00
|
|
|
break;
|
|
|
|
case "touch":
|
2022-06-12 12:41:52 +02:00
|
|
|
bufko += touch(args, curdir, socket);
|
2022-06-11 22:12:19 +02:00
|
|
|
break;
|
|
|
|
case "cat":
|
2022-06-12 12:41:52 +02:00
|
|
|
bufko += cat(args, curdir[socket.id]);
|
2022-06-11 22:12:19 +02:00
|
|
|
break;
|
|
|
|
case "exec":
|
2022-06-12 12:41:52 +02:00
|
|
|
bufko += exec(args, curdir, socket, buffer, sessions, filesystem, curdirx);
|
2022-06-11 22:12:19 +02:00
|
|
|
break;
|
|
|
|
case "ls":
|
2022-06-12 12:41:52 +02:00
|
|
|
bufko += ls(curdir[socket.id]);
|
2022-06-11 22:12:19 +02:00
|
|
|
break;
|
|
|
|
case "cd":
|
2022-06-12 12:41:52 +02:00
|
|
|
bufko += cd(args, curdir, socket, filesystem, curdirx);
|
2022-06-11 22:12:19 +02:00
|
|
|
break;
|
|
|
|
case "pwd":
|
2022-06-12 12:41:52 +02:00
|
|
|
bufko += pwd(curdirx[socket.id]);
|
2022-06-11 22:12:19 +02:00
|
|
|
break;
|
2022-06-12 09:38:38 +02:00
|
|
|
case "echo":
|
2022-06-12 12:41:52 +02:00
|
|
|
bufko += echo(args);
|
2022-06-12 09:38:38 +02:00
|
|
|
break;
|
|
|
|
case "clear":
|
2022-06-12 12:41:52 +02:00
|
|
|
bufko += clear(buffer[socket.id]);
|
2022-06-11 22:12:19 +02:00
|
|
|
break;
|
2022-06-17 21:06:49 +02:00
|
|
|
// case "savesess":
|
|
|
|
// bufko += savesess(args, sessions, filesystem, curdir, buffer, socket);
|
|
|
|
// break;
|
|
|
|
// case "loadsess":
|
|
|
|
// bufko += loadsess(args, sessions, filesystem[socket.id], curdir[socket.id], buffer[socket.id], socket);
|
|
|
|
// break;
|
2022-06-12 09:38:38 +02:00
|
|
|
case "wee":
|
2022-06-12 12:41:52 +02:00
|
|
|
bufko += wee();
|
2022-06-12 09:38:38 +02:00
|
|
|
break;
|
|
|
|
case "woo":
|
2022-06-12 12:41:52 +02:00
|
|
|
bufko += woo();
|
|
|
|
break;
|
2022-06-17 21:06:49 +02:00
|
|
|
case "resendbuf":
|
2022-06-12 12:41:52 +02:00
|
|
|
sendbuffer(socket, buffer, true);
|
2022-06-12 09:38:38 +02:00
|
|
|
break;
|
|
|
|
case "spam":
|
2022-06-12 12:41:52 +02:00
|
|
|
bufko += spam(args);
|
2022-06-12 09:38:38 +02:00
|
|
|
break;
|
2022-06-11 22:12:19 +02:00
|
|
|
//invalid command
|
|
|
|
default:
|
2022-06-12 12:41:52 +02:00
|
|
|
bufko += "Invalid command.\n";
|
2022-06-17 21:06:49 +02:00
|
|
|
socket.emit("bell");
|
2022-06-11 22:12:19 +02:00
|
|
|
}
|
2022-06-12 12:41:52 +02:00
|
|
|
return bufko;
|
2022-06-11 22:12:19 +02:00
|
|
|
}
|
|
|
|
export {resolveCommand};
|