From 24f5bff711b26b2f22280367f29a8941692fc231 Mon Sep 17 00:00:00 2001 From: Jacky720 <32578221+Jacky720@users.noreply.github.com> Date: Tue, 16 Jan 2018 18:07:52 -0500 Subject: [PATCH 1/2] Update xkcd_cli.js --- src/xkcd_cli.js | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/xkcd_cli.js b/src/xkcd_cli.js index 18c0367..3e01d79 100644 --- a/src/xkcd_cli.js +++ b/src/xkcd_cli.js @@ -61,6 +61,12 @@ var xkcdDisplay = TerminalShell.commands['display'] = function(terminal, path) { terminal.print("Time travel mode not enabled."); return; } + + if (num == 404) { + terminal.print("Error 404: Not Found"); + return; + } + } else { num = xkcd.last.num; } @@ -91,12 +97,20 @@ var xkcdDisplay = TerminalShell.commands['display'] = function(terminal, path) { }; TerminalShell.commands['next'] = function(terminal) { - xkcdDisplay(terminal, xkcd.last.num+1); + if (xkcd.last.num != 403) { + xkcdDisplay(terminal, xkcd.last.num+1); + } else { + xkcdDisplay(terminal, 405); + } }; TerminalShell.commands['previous'] = TerminalShell.commands['prev'] = function(terminal) { - xkcdDisplay(terminal, xkcd.last.num-1); + if (xkcd.last.num != 405) { + xkcdDisplay(terminal, xkcd.last.num-1); + } else { + xkcdDisplay(terminal, 403); + } }; TerminalShell.commands['first'] = function(terminal) { From 51e1b07910e8bdfc1f2104837bcba48c74272731 Mon Sep 17 00:00:00 2001 From: Jacky720 <32578221+Jacky720@users.noreply.github.com> Date: Thu, 1 Feb 2018 18:07:20 -0500 Subject: [PATCH 2/2] Added su and 838 ref --- src/xkcd_cli.js | 41 +++++++++++++++++++++++++++++++---------- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/src/xkcd_cli.js b/src/xkcd_cli.js index 3e01d79..4f90153 100644 --- a/src/xkcd_cli.js +++ b/src/xkcd_cli.js @@ -14,6 +14,8 @@ function randomChoice(items) { return items[getRandomInt(0, items.length-1)]; } +var User = "guest"; + var xkcd = { latest: null, last: null, @@ -140,21 +142,40 @@ TerminalShell.commands['sudo'] = function(terminal) { if (cmd_args.join(' ') == 'make me a sandwich') { terminal.print('Okay.'); } else { - var cmd_name = cmd_args.shift(); - cmd_args.unshift(terminal); - cmd_args.push('sudo'); - if (TerminalShell.commands.hasOwnProperty(cmd_name)) { - this.sudo = true; - this.commands[cmd_name].apply(this, cmd_args); - delete this.sudo; - } else if (!cmd_name) { - terminal.print('sudo what?'); + if (User = "root") { + var cmd_name = cmd_args.shift(); + cmd_args.unshift(terminal); + cmd_args.push('sudo'); + if (TerminalShell.commands.hasOwnProperty(cmd_name)) { + this.sudo = true; + this.commands[cmd_name].apply(this, cmd_args); + delete this.sudo; + } else if (!cmd_name) { + terminal.print('sudo what?'); + } else { + terminal.print('sudo: '+cmd_name+': command not found'); + } } else { - terminal.print('sudo: '+cmd_name+': command not found'); + terminal.print(User+' is not in the sudoers file.'); + terminal.print('This incident will be reported.'); + xkcdDisplay(terminal, 838); } } }; +TerminalShell.commands['su'] = function(terminal, user) { + + if (!user) { + user = "root"; + } + + terminal.print("Password: "); + User = user; + delete user; + Terminal.config.prompt = User+'@xkcd:/$ '; + document.getElementById('title').innerHTML = User+'@xkcd'; +} + TerminalShell.filters.push(function (terminal, cmd) { if (/!!/.test(cmd)) { var newCommand = cmd.replace('!!', this.lastCommand);