diff --git a/halyde/apps/cd.lua b/halyde/apps/cd.lua index a4c08b3..aec22b3 100644 --- a/halyde/apps/cd.lua +++ b/halyde/apps/cd.lua @@ -3,6 +3,9 @@ local directory = args[1] args = nil local fs = import("filesystem") +if not directory then + return +end if directory == ".." then local backDirectory = shell.workingDirectory:match("(.+)/.-/") if backDirectory then diff --git a/halyde/apps/cp.lua b/halyde/apps/cp.lua index e8b454f..adc6576 100644 --- a/halyde/apps/cp.lua +++ b/halyde/apps/cp.lua @@ -3,6 +3,10 @@ local fromFile, toFile = args[1], args[2] args = nil local fs = import("filesystem") +if not fromFile or not toFile then + shell.run("help cp") + return +end if fromFile:sub(1, 1) ~= "/" then fromFile = shell.workingDirectory .. fromFile end diff --git a/halyde/apps/fetch.lua b/halyde/apps/fetch.lua index d8bd8fe..54f2716 100644 --- a/halyde/apps/fetch.lua +++ b/halyde/apps/fetch.lua @@ -1,4 +1,5 @@ -termlib.cursorPosY = termlib.cursorPosY + 2 +print("") +print("") print(" \27[93m┌┬┐ ┌┐ ┌┐ \n ││├─┤├┬┬┘├─┐\n │┐├┘││││││││\n ││││││││││┌┤\n └┴┴─┴┼┐├─┴─┘\n └─┘ ") termlib.cursorPosX, termlib.cursorPosY = 17, termlib.cursorPosY - 8 print("\27[92mOS\27[0m: ".._OSVERSION) diff --git a/halyde/apps/mv.lua b/halyde/apps/mv.lua index 46c4630..17c7f5a 100644 --- a/halyde/apps/mv.lua +++ b/halyde/apps/mv.lua @@ -3,6 +3,10 @@ local fromFile, toFile = args[1], args[2] args = nil local fs = import("filesystem") +if not fromFile or not toFile then + shell.run("help mv") + return +end if fromFile:sub(1, 1) ~= "/" then fromFile = shell.workingDirectory .. fromFile end diff --git a/halyde/apps/rm.lua b/halyde/apps/rm.lua index a484664..6c19ae0 100644 --- a/halyde/apps/rm.lua +++ b/halyde/apps/rm.lua @@ -3,6 +3,10 @@ local file = args[1] args = nil local fs = import("filesystem") +if not file then + shell.run("help rm") + return +end if file:sub(1, 1) ~= "/" then file = shell.workingDirectory .. file end diff --git a/halyde/core/boot.lua b/halyde/core/boot.lua index 50b2364..b0cb264 100644 --- a/halyde/core/boot.lua +++ b/halyde/core/boot.lua @@ -1,7 +1,7 @@ local loadfile = ... local filesystem = loadfile("/halyde/lib/filesystem.lua")(loadfile) -_G._OSVERSION = "Halyde 0.8.0" +_G._OSVERSION = "Halyde 0.8.1" function _G.import(module, ...) local args = table.pack(...) diff --git a/halyde/core/shell.lua b/halyde/core/shell.lua index fb4b750..12f0271 100644 --- a/halyde/core/shell.lua +++ b/halyde/core/shell.lua @@ -41,6 +41,9 @@ function _G.shell.run(command) end -- execute the program local foundfile = false + if not args[1] then + return + end if filesystem.exists(args[1]) then foundfile = true local path = args[1] @@ -60,7 +63,15 @@ function _G.shell.run(command) if args[1] == file:match("(.+)%.[^%.]+$") then foundfile = true table.remove(args, 1) - import(item..file, table.unpack(args)) + local function runCommand() + import(item..file, table.unpack(args)) + end + local result, reason = xpcall(runCommand, function(errMsg) + return errMsg .. "\n\n" .. debug.traceback() + end) + if not result then + print("\27[91m" .. reason) + end break end end diff --git a/halyde/core/termlib.lua b/halyde/core/termlib.lua index 441f327..1e90427 100644 --- a/halyde/core/termlib.lua +++ b/halyde/core/termlib.lua @@ -41,7 +41,13 @@ gpu.setBackground(defaultBackgroundColor) local function scrollDown() if gpu.copy(0,1,width,height,0,-1) then - gpu.set(1,height,string.rep(" ",width)) + local prevForeground = gpu.getForeground() + local prevBackground = gpu.getBackground() + gpu.setForeground(defaultForegroundColor) + gpu.setBackground(defaultBackgroundColor) + gpu.fill(1, height, width, 1, " ") + gpu.setForeground(prevForeground) + gpu.setBackground(prevBackground) termlib.cursorPosY=height end end