Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make wget automatically determine the file name. #536

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@

local function printUsage()
print( "Usage:" )
print( "wget <url> <filename>" )
print( "wget <url> [filename]" )
end

local tArgs = { ... }
if #tArgs < 2 then
if #tArgs < 1 then
printUsage()
return
end
Expand All @@ -15,19 +15,15 @@ if not http then
printError( "Set http_enable to true in ComputerCraft.cfg" )
return
end


local function getFilename( sUrl )
sUrl = sUrl:gsub( "[#?].*" , "" ):gsub( "/+$" , "" )
return sUrl:match( "/([^/]+)$" )
end

local function get( sUrl )
write( "Connecting to " .. sUrl .. "... " )

local ok, err = http.checkURL( sUrl )
if not ok then
print( "Failed." )
if err then
printError( err )
end
return nil
end

local response = http.get( sUrl , nil , true )
if not response then
print( "Failed." )
Expand All @@ -40,10 +36,20 @@ local function get( sUrl )
response.close()
return sResponse
end

-- Determine file to download
local sUrl = tArgs[1]
local sFile = tArgs[2]

--Check if the URL is valid
local ok, err = http.checkURL( sUrl )
if not ok then
if err then
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if it'd be worth doing printError( err or "Failed. ") instead. Though err shouldn't ever be nil, so neither is really needed.

Copy link
Contributor Author

@Luca0208 Luca0208 Apr 5, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this is done it would probably be better to use "Invalid URL" or something like that instead of "Failed." to distinguish it from the "Failed." message caused when the download failed.
Edit: But you are right in any way the if is not needed. Just copied the checking function from the original

printError( err )
end
return
end

local sFile = tArgs[2] or getFilename( sUrl )
local sPath = shell.resolve( sFile )
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could be replaced by shell.resolve( sFile or " ")

if fs.exists( sPath ) then
print( "File already exists" )
Expand Down