mirror of
https://github.com/Kiritow/OpenComputerScripts.git
synced 2024-03-22 13:10:46 +08:00
108 lines
2.3 KiB
Lua
108 lines
2.3 KiB
Lua
---------------------------- Begin of From Downloader
|
|
|
|
local component=require("component")
|
|
|
|
local function doRealDownload(url)
|
|
if(component.internet==nil) then
|
|
error("The downloader requires an Internet card.")
|
|
end
|
|
|
|
local handle=component.internet.request(url)
|
|
|
|
while true do
|
|
local ret,err=handle.finishConnect()
|
|
if(ret==nil) then
|
|
return false,err
|
|
elseif(ret==true) then
|
|
break
|
|
end
|
|
--os.sleep(0.1)
|
|
end
|
|
|
|
local response_code=handle.response()
|
|
|
|
local ans=""
|
|
while true do
|
|
local tmp=handle.read()
|
|
if(tmp==nil) then break end
|
|
ans=ans .. tmp
|
|
end
|
|
handle.close()
|
|
|
|
return true,ans,response_code
|
|
end
|
|
|
|
function DownloadFromGitHub(RepoName,Branch,FileAddress)
|
|
local url="https://raw.githubusercontent.com/" .. RepoName .. "/" .. Branch .. "/" .. FileAddress
|
|
return doRealDownload(url)
|
|
end
|
|
|
|
function DownloadFromOCS(FileAddress)
|
|
return DownloadFromGitHub("Kiritow/OpenComputerScripts","master",FileAddress)
|
|
end
|
|
|
|
function WriteStringToFile(StringValue,FileName,IsAppend)
|
|
if(IsAppend==nil) then IsAppend=false end
|
|
local handle,err
|
|
if(IsAppend) then
|
|
handle,err=io.open(FileName,"a")
|
|
else
|
|
handle,err=io.open(FileName,"w")
|
|
end
|
|
if(handle==nil) then return false,err end
|
|
|
|
handle:write(StringValue)
|
|
handle:close()
|
|
|
|
return true,"Success"
|
|
end
|
|
|
|
----------------------------- End of From Downloader
|
|
local shell=require("shell")
|
|
local args=shell.parse(...)
|
|
local argc=#args
|
|
|
|
local file_lst={}
|
|
|
|
if(argc<1) then
|
|
file_lst=
|
|
{
|
|
"SignReader.lua",
|
|
"checkarg.lua",
|
|
"class.lua",
|
|
"downloader.lua",
|
|
"libevent.lua",
|
|
"queue.lua",
|
|
"util.lua",
|
|
"vector.lua",
|
|
"LICENSE"
|
|
}
|
|
else
|
|
for i=1,argc,1 do
|
|
table.insert(file_lst,args[i])
|
|
end
|
|
end
|
|
|
|
local cnt_all=0
|
|
for k,v in pairs(file_lst) do
|
|
cnt_all=cnt_all+1
|
|
end
|
|
|
|
local cnt_now=1
|
|
|
|
-- Download from the list
|
|
for k,v in pairs(file_lst) do
|
|
io.write("Updating (" .. cnt_now .. "/" .. cnt_all .. "): " .. v .. " ")
|
|
local flag,x,y=DownloadFromOCS(v)
|
|
if((not flag) or (y~=200) ) then
|
|
print("[Download Failed]")
|
|
else
|
|
local ret=WriteStringToFile(x,v)
|
|
if(not ret) then
|
|
print("[Write Failed]")
|
|
else
|
|
print("[OK]")
|
|
end
|
|
cnt_now = cnt_now + 1
|
|
end
|
|
end |