Compare commits

..

3 Commits

Author SHA1 Message Date
128798cf22 colony monitor 2022-06-30 11:47:16 +02:00
df308cf365 fix stackoverflow 2022-06-30 11:35:20 +02:00
08182e1d04 getscript 2022-06-30 11:35:05 +02:00
3 changed files with 102 additions and 8 deletions

93
getscript.lua Normal file
View File

@ -0,0 +1,93 @@
local repo = "https://buduf.ddns.net/git/Buduf/ComputerCraft/raw/branch/master/"
local function printUsage()
local programName = arg[0] or fs.getName(shell.getRunningProgram())
print("This program downloads a file from my git repository. Usage:")
print(programName .. " <programname> [filename]")
print(programName .. " run <programname>")
end
local tArgs = { ... }
local run = false
if tArgs[1] == "run" then
table.remove(tArgs, 1)
run = true
end
if #tArgs < 1 then
printUsage()
return
end
local url = repo .. table.remove(tArgs, 1) .. ".lua"
if not http then
printError("getscript requires the http API")
printError("Set http.enabled to true in CC: Tweaked's config")
return
end
local function getFilename(sUrl)
sUrl = sUrl:gsub("[#?].*", ""):gsub("/+$", "")
return sUrl:match("/([^/]+)$")
end
local function get(sUrl)
-- Check if the URL is valid
local ok, err = http.checkURL(url)
if not ok then
printError(err or "Invalid URL.")
return
end
write("Connecting to " .. sUrl .. "... ")
local response = http.get(sUrl, nil, true)
if not response then
print("Failed.")
return nil
end
print("Success.")
local sResponse = response.readAll()
response.close()
return sResponse or ""
end
if run then
local res = get(url)
if not res then return end
local func, err = load(res, getFilename(url), "t", _ENV)
if not func then
printError(err)
return
end
local ok, err = pcall(func, table.unpack(tArgs))
if not ok then
printError(err)
end
else
local sFile = tArgs[1] or getFilename(url) or url
local sPath = shell.resolve(sFile)
if fs.exists(sPath) then
print("File already exists")
return
end
local res = get(url)
if not res then return end
local file, err = fs.open(sPath, "wb")
if not file then
printError("Cannot save file: " .. err)
return
end
file.write(res)
file.close()
print("Downloaded as " .. sFile)
end

View File

@ -4,8 +4,7 @@ for key, monitor in pairs(monitors) do
monitor.setTextScale(0.5) monitor.setTextScale(0.5)
monitor.clear() monitor.clear()
monitor.setCursorPos(1, 1) monitor.setCursorPos(1, 1)
--monitor.write("Hello World!")
end end
local wo = colony.getWorkOrders() local wo = colony.getWorkOrders()
local pr = textutils.serialise(wo) local s = printTable(wo)
printTable(wo, 0) monitors[1].write(s)

View File

@ -1,14 +1,16 @@
local function _printTable(table, s, tabs) local result = ""
local function _printTable(table, tabs)
for key, value in pairs(table) do for key, value in pairs(table) do
if type(value) == "table" then if type(value) == "table" then
_printTable(table, "", tabs + 1) _printTable(value, tabs + 1)
else else
print(string.rep(' ', tabs), key, value) result = result .. "\n" .. string.rep(" ", tabs) .. key .. ": " .. value
end end
end end
return s
end end
function printTable(table) function printTable(table)
return _printTable(table, "", 0) _printTable(table, 0)
return result
end end