Skip to content

Commit

Permalink
(chocolateyGH-781) Web Functions - Return early when local file
Browse files Browse the repository at this point in the history
Check to see if the requested url is actually a local file and return
early if found.
  • Loading branch information
ferventcoder committed Jun 9, 2016
1 parent cce7a54 commit 964030c
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 0 deletions.
14 changes: 14 additions & 0 deletions src/chocolatey.resources/helpers/functions/Get-FtpFile.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,20 @@ param(
return
}

try {
$uri = [System.Uri]$url
if ($uri.IsFile()) {
Write-Debug "Url is local file, setting destination"
if ($url.LocalPath -ne $fileName) {
Copy-Item $uri.LocalPath -Destination $fileName -Force
}

return
}
} catch {
//continue on
}

# Create a FTPWebRequest object to handle the connection to the ftp server
$ftprequest = [System.Net.FtpWebRequest]::create($url)

Expand Down
15 changes: 15 additions & 0 deletions src/chocolatey.resources/helpers/functions/Get-WebFile.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,21 @@ param(
)
Write-Debug "Running 'Get-WebFile' for $fileName with url:`'$url`', userAgent: `'$userAgent`' ";
#if ($url -eq '' return)

try {
$uri = [System.Uri]$url
if ($uri.IsFile()) {
Write-Debug "Url is local file, setting destination"
if ($url.LocalPath -ne $fileName) {
Copy-Item $uri.LocalPath -Destination $fileName -Force
}

return
}
} catch {
//continue on
}

$req = [System.Net.HttpWebRequest]::Create($url);
$defaultCreds = [System.Net.CredentialCache]::DefaultCredentials
if ($defaultCreds -ne $null) {
Expand Down
11 changes: 11 additions & 0 deletions src/chocolatey.resources/helpers/functions/Get-WebFileName.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,17 @@ param(
return $originalFileName
}

try {
$uri = [System.Uri]$url
if ($uri.IsFile()) {
$fileName = [System.IO.Path]::GetFileName($uri.LocalPath)
Write-Debug "Url is local file, returning fileName"
return $fileName
}
} catch {
//continue on
}

$request = [System.Net.HttpWebRequest]::Create($url)
if ($request -eq $null) {
Write-Debug "Request was null, using default name."
Expand Down

0 comments on commit 964030c

Please sign in to comment.