diff --git a/argentum.cfg b/argentum.cfg index e65c69c..27bfbb5 100644 --- a/argentum.cfg +++ b/argentum.cfg @@ -1,7 +1,7 @@ local agcfg = { ["halyde"] = { ["maindir"] = "", - ["version"] = "1.6.0", + ["version"] = "1.7.0", ["description"] = "A universal, customizable and feature-packed operating system for OpenComputers.", ["directories"] = { "halyde/apps", diff --git a/argentum/store/halyde/package.cfg b/argentum/store/halyde/package.cfg index 1a6cf14..46a7905 100644 --- a/argentum/store/halyde/package.cfg +++ b/argentum/store/halyde/package.cfg @@ -4,7 +4,7 @@ Ahalyde/core/ Ahalyde/config/ Ahalyde/apps/helpdb/ Ahalyde/apps/ -V1.6.0 +V1.7.0 Ainit.lua Ahalyde/apps/helpdb/cat.txt Ahalyde/apps/helpdb/cd.txt diff --git a/halyde/apps/edit.lua b/halyde/apps/edit.lua index ce093a8..c0bfa56 100644 --- a/halyde/apps/edit.lua +++ b/halyde/apps/edit.lua @@ -1,8 +1,7 @@ -local args = {...} -local file = args[1] -args = nil +local file = ... local fs = import("filesystem") local event = import("event") +local component = import("component") local gpu = component.proxy(component.list("gpu")()) local width, height = gpu.getResolution() local scrollPosX, scrollPosY = 1, 1 @@ -16,7 +15,7 @@ local scrollSpeed = 5 local function rawset(x, y, text) termlib.cursorPosX = x termlib.cursorPosY = y - print(text, false, false) + termlib.write(text, false) end local filestring, filepath, handle, data, tmpdata diff --git a/halyde/apps/fetch.lua b/halyde/apps/fetch.lua index 0107a93..add0a0d 100644 --- a/halyde/apps/fetch.lua +++ b/halyde/apps/fetch.lua @@ -3,11 +3,11 @@ local computer = import("computer") local function printstat(text) termlib.cursorPosX = 35 - print(text, true, false) + termlib.write(text .. "\n", false) end -print(_OSLOGO, true, false) -termlib.cursorPosY = termlib.cursorPosY - 18 +termlib.write(_OSLOGO, false) +termlib.cursorPosY = termlib.cursorPosY - 17 printstat("\27[92mOS\27[0m: ".._OSVERSION) printstat("\27[92mArchitecture\27[0m: ".._VERSION) local componentCounter = 0 diff --git a/halyde/apps/lua.lua b/halyde/apps/lua.lua index 5c85c30..1fd794d 100644 --- a/halyde/apps/lua.lua +++ b/halyde/apps/lua.lua @@ -1,14 +1,23 @@ print("\27[44m".._VERSION.."\27[0m shell") print('Type "exit" to exit.') termlib.readHistory["lua"] = {""} +local fs = import("filesystem") + +local loadedLibraries = "" +local libList = fs.list("halyde/lib") +for _, lib in pairs(libList) do + if lib:match("(.+)%.lua") then + loadedLibraries = loadedLibraries .. "local " .. lib:match("(.+)%.lua") .. ' = import("' .. lib:match("(.+)%.lua") .. '")\n' + end +end + while true do - print("\27[44mlua>\27[0m ", false) - local command = read("lua") + local command = read("lua", "\27[44mlua>\27[0m ") if command == "exit" then return else local function runCommand() - assert(load(command))() + assert(load(loadedLibraries .. command))() end local result, reason = xpcall(runCommand, function(errMsg) return errMsg .. "\n\n" .. debug.traceback() diff --git a/halyde/core/boot.lua b/halyde/core/boot.lua index 5db1f97..948624b 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 1.6.0" +_G._OSVERSION = "Halyde 1.7.0" _G._OSLOGO = "" local handle, tmpdata = filesystem.open("/halyde/config/oslogo.ans", "r"), nil repeat diff --git a/halyde/core/termlib.lua b/halyde/core/termlib.lua index 8d6087d..6194b18 100644 --- a/halyde/core/termlib.lua +++ b/halyde/core/termlib.lua @@ -3,6 +3,7 @@ local event = import("event") --local ocelot = component.proxy(component.list("ocelot")()) local component = import("component") +local computer = import("computer") local gpu = component.proxy(component.list("gpu")()) -- replace with component.gpu once implemented _G.termlib = {} termlib.cursorPosX = 1 @@ -70,14 +71,11 @@ local function parseCodeNumbers(code) return o end -function _G.print(text, endNewLine, textWrap) +function termlib.write(text, textWrap) width, height = gpu.getResolution() -- you don't know how tiring this was just for ANSI escape code support - if endNewLine == nil then - endNewLine = true - end if textWrap == nil then textWrap = true end @@ -168,9 +166,17 @@ function _G.print(text, endNewLine, textWrap) ::continue:: end printSection() - if endNewLine then - newLine() +end + +function _G.print(...) + local args = {...} + local stringArgs = {} + for _, arg in pairs(args) do + if tostring(arg) then + table.insert(stringArgs, tostring(arg)) + end end + termlib.write(table.concat(stringArgs, " ") .. "\n") end function _G.clear() @@ -197,7 +203,7 @@ function _G.read(readHistoryType, prefix, defaultText) RHIndex = #termlib.readHistory[readHistoryType] -- read history index end local cursorPosX, cursorPosY = termlib.cursorPosX, termlib.cursorPosY - print(prefix .. curtext .. "\27[107m ", false) + termlib.write(prefix .. curtext .. "\27[107m ") local cursorWhite = true while true do --ocelot.log(curtext) @@ -209,30 +215,30 @@ function _G.read(readHistoryType, prefix, defaultText) local key = keyboard.keys[keycode] if key == "up" and readHistoryType then termlib.cursorPosX, termlib.cursorPosY = cursorPosX, cursorPosY - print(prefix .. curtext .. " ", false) + termlib.write(prefix .. curtext .. " ") RHIndex = RHIndex - 1 if RHIndex <= 0 then RHIndex = 1 end termlib.cursorPosX, termlib.cursorPosY = cursorPosX, cursorPosY - print(prefix .. termlib.readHistory[readHistoryType][RHIndex] .. string.rep(" ", unicode.wlen(curtext) - unicode.wlen(termlib.readHistory[readHistoryType][RHIndex])), false) + termlib.write(prefix .. termlib.readHistory[readHistoryType][RHIndex] .. string.rep(" ", unicode.wlen(curtext) - unicode.wlen(termlib.readHistory[readHistoryType][RHIndex]))) curtext = termlib.readHistory[readHistoryType][RHIndex] end if key == "down" and readHistoryType then termlib.cursorPosX, termlib.cursorPosY = cursorPosX, cursorPosY - print(prefix .. curtext .. " ", false) + termlib.write(prefix .. curtext .. " ") RHIndex = RHIndex + 1 if RHIndex > #termlib.readHistory[readHistoryType] then RHIndex = #termlib.readHistory[readHistoryType] end termlib.cursorPosX, termlib.cursorPosY = cursorPosX, cursorPosY - print(prefix .. termlib.readHistory[readHistoryType][RHIndex] .. string.rep(" ", unicode.wlen(curtext) - unicode.wlen(termlib.readHistory[readHistoryType][RHIndex])), false) + termlib.write(prefix .. termlib.readHistory[readHistoryType][RHIndex] .. string.rep(" ", unicode.wlen(curtext) - unicode.wlen(termlib.readHistory[readHistoryType][RHIndex]))) curtext = termlib.readHistory[readHistoryType][RHIndex] end if key == "back" then curtext = curtext:sub(1, #curtext-1) termlib.cursorPosX, termlib.cursorPosY = cursorPosX, cursorPosY - print(prefix .. curtext.." ", false) + termlib.write(prefix .. curtext.." ") end if key == "enter" then termlib.cursorPosX, termlib.cursorPosY = cursorPosX, cursorPosY @@ -251,14 +257,14 @@ function _G.read(readHistoryType, prefix, defaultText) end end termlib.cursorPosX, termlib.cursorPosY = cursorPosX, cursorPosY - print(prefix .. curtext, false) + termlib.write(prefix .. curtext) else cursorWhite = not cursorWhite end if cursorWhite then - print("\27[107m ", false) + termlib.write("\27[107m ") else - print(" ", false) + termlib.write(" ") end end end diff --git a/halyde/lib/raster.lua b/halyde/lib/raster.lua index cba532b..db49347 100644 --- a/halyde/lib/raster.lua +++ b/halyde/lib/raster.lua @@ -8,6 +8,7 @@ local raster = { ["charHeight"]=0 } +local component = import("component") -- local ocelot = component.proxy(component.list("ocelot")()) local gpu = component.proxy(component.list("gpu")())