I forgot you have to give it write permissions (minified)
This commit is contained in:
@@ -1,57 +1 @@
|
||||
local url = ...
|
||||
|
||||
local component = import("component")
|
||||
local fs = import("filesystem")
|
||||
|
||||
if not component.list("internet")() then
|
||||
print("\27[91mThis program requires an internet card to run.")
|
||||
return
|
||||
end
|
||||
|
||||
if not url then
|
||||
print("Please enter a URL to download from.")
|
||||
shell.run("help download")
|
||||
return
|
||||
end
|
||||
|
||||
if url:sub(-1, -1) == "/" then
|
||||
url = url:sub(1, -2)
|
||||
end
|
||||
|
||||
local internet = component.internet
|
||||
|
||||
local request, data, tmpdata = nil, "", nil
|
||||
local status, errorMessage = pcall(function()
|
||||
request = internet.request(url)
|
||||
request:finishConnect()
|
||||
end)
|
||||
if not status then
|
||||
print("\27[91mDownload failed: " .. errorMessage)
|
||||
end
|
||||
local responseCode = request:response()
|
||||
if responseCode and responseCode ~= 200 then
|
||||
print("\27[91mDownload failed: " .. tostring(responseCode))
|
||||
end
|
||||
repeat
|
||||
tmpdata = request.read(math.huge)
|
||||
data = data .. (tmpdata or "")
|
||||
until not tmpdata
|
||||
local saveLocation
|
||||
local saveLocationOK = false
|
||||
repeat
|
||||
saveLocation = read(nil, "File save location: ", fs.concat(shell.workingDirectory, url:match("/([^/]+)$")))
|
||||
if fs.isDirectory(saveLocation) then
|
||||
print("\27[91mThe specified location is a directory.")
|
||||
elseif fs.exists(saveLocation) then
|
||||
local answer = read(nil, "\27[91mThere is already a file at the specified directory. Overwrite it? [Y/n]")
|
||||
if answer:lower() ~= "n" then
|
||||
saveLocationOK = true
|
||||
end
|
||||
else
|
||||
saveLocationOK = true
|
||||
end
|
||||
until saveLocationOK
|
||||
local handle = fs.open(saveLocation, "w")
|
||||
handle:write(data)
|
||||
handle:close()
|
||||
print("File downloaded successfully.")
|
||||
Error: no such file. (``)
|
||||
|
||||
Reference in New Issue
Block a user