CliSite/commands/commands.ts

127 lines
3.9 KiB
TypeScript
Raw Normal View History

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 = "";
switch (commandname) {
case "help":
2022-06-12 12:41:52 +02:00
bufko += help();
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;
case "screenshot":
2022-06-12 12:41:52 +02:00
bufko += screenshot(args, curdir, buffer, socket);
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]);
break;
case "rm":
2022-06-12 12:41:52 +02:00
bufko += rm(args, curdir, socket);
break;
case "mv":
2022-06-12 12:41:52 +02:00
bufko += mv(args, curdir[socket.id]);
break;
case "cp":
2022-06-12 12:41:52 +02:00
bufko += cp(args, curdir[socket.id]);
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;
case "rmdir":
2022-06-12 12:41:52 +02:00
bufko += rmdir(args, curdir, socket);
break;
case "touch":
2022-06-12 12:41:52 +02:00
bufko += touch(args, curdir, socket);
break;
case "cat":
2022-06-12 12:41:52 +02:00
bufko += cat(args, curdir[socket.id]);
break;
case "exec":
2022-06-12 12:41:52 +02:00
bufko += exec(args, curdir, socket, buffer, sessions, filesystem, curdirx);
break;
case "ls":
2022-06-12 12:41:52 +02:00
bufko += ls(curdir[socket.id]);
break;
case "cd":
2022-06-12 12:41:52 +02:00
bufko += cd(args, curdir, socket, filesystem, curdirx);
break;
case "pwd":
2022-06-12 12:41:52 +02:00
bufko += pwd(curdirx[socket.id]);
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]);
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;
//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-12 12:41:52 +02:00
return bufko;
}
export {resolveCommand};