Compare commits
3 Commits
b316ced862
...
128798cf22
| Author | SHA1 | Date | |
|---|---|---|---|
| 128798cf22 | |||
| df308cf365 | |||
| 08182e1d04 |
93
getscript.lua
Normal file
93
getscript.lua
Normal 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
|
||||
@ -4,8 +4,7 @@ for key, monitor in pairs(monitors) do
|
||||
monitor.setTextScale(0.5)
|
||||
monitor.clear()
|
||||
monitor.setCursorPos(1, 1)
|
||||
--monitor.write("Hello World!")
|
||||
end
|
||||
local wo = colony.getWorkOrders()
|
||||
local pr = textutils.serialise(wo)
|
||||
printTable(wo, 0)
|
||||
local s = printTable(wo)
|
||||
monitors[1].write(s)
|
||||
|
||||
@ -1,14 +1,16 @@
|
||||
local function _printTable(table, s, tabs)
|
||||
local result = ""
|
||||
|
||||
local function _printTable(table, tabs)
|
||||
for key, value in pairs(table) do
|
||||
if type(value) == "table" then
|
||||
_printTable(table, "", tabs + 1)
|
||||
_printTable(value, tabs + 1)
|
||||
else
|
||||
print(string.rep(' ', tabs), key, value)
|
||||
result = result .. "\n" .. string.rep(" ", tabs) .. key .. ": " .. value
|
||||
end
|
||||
end
|
||||
return s
|
||||
end
|
||||
|
||||
function printTable(table)
|
||||
return _printTable(table, "", 0)
|
||||
_printTable(table, 0)
|
||||
return result
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user