import { Socket } from 'socket.io'; import { append } from './append'; import { beep } from './beep'; import { cat } from './cat'; import { cd } from './cd'; import { clear } from './clear'; import { cp } from './cp'; import { echo } from './echo'; import { exec } from './exec'; import { help } from './help'; import { loadsess } from './loadsess'; 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'; import { savesess } from './savesess'; import { screenshot } from './screenshot'; import { spam } from './spam'; import { touch } from './touch'; import { wee } from './wee'; import { woo } from './woo'; 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": bufko += help(); break; case "man": bufko += man(args); break; //implement more commands case "beep": bufko += beep(socket); break; case "screenshot": bufko += screenshot(args, curdir, buffer, socket); break; case "append": bufko += append(args, curdir[socket.id]); break; case "overwrite": bufko += overwrite(args, curdir[socket.id]); break; case "rm": bufko += rm(args, curdir, socket); break; case "mv": bufko += mv(args, curdir[socket.id]); break; case "cp": bufko += cp(args, curdir[socket.id]); break; case "mkdir": bufko += mkdir(args, curdir[socket.id]); break; case "rmdir": bufko += rmdir(args, curdir, socket); break; case "touch": bufko += touch(args, curdir, socket); break; case "cat": bufko += cat(args, curdir[socket.id]); break; case "exec": bufko += exec(args, curdir, socket, buffer, sessions, filesystem, curdirx); break; case "ls": bufko += ls(curdir[socket.id]); break; case "cd": bufko += cd(args, curdir, socket, filesystem, curdirx); break; case "pwd": bufko += pwd(curdirx[socket.id]); break; case "echo": bufko += echo(args); break; case "clear": bufko += clear(buffer[socket.id]); break; 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]); break; case "wee": bufko += wee(); break; case "woo": bufko += woo(); break; case "resendbufko": sendbuffer(socket, buffer, true); break; case "spam": bufko += spam(args); break; //invalid command default: bufko += "Invalid command.\n"; } return bufko; } export {resolveCommand};