Skip to content

Commit 73ade42

Browse files
committed
Try to report better error when file is blocked by Firewall
1 parent 46a1631 commit 73ade42

3 files changed

Lines changed: 40 additions & 2 deletions

File tree

‎src/Paket.Core/NuGetV2.fs‎

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -393,8 +393,19 @@ let ExtractPackage(fileName:string, targetFolder, packageName:PackageName, versi
393393
else
394394
Directory.CreateDirectory(targetFolder) |> ignore
395395

396-
fixArchive fileName
397-
ZipFile.ExtractToDirectory(fileName, targetFolder)
396+
try
397+
fixArchive fileName
398+
ZipFile.ExtractToDirectory(fileName, targetFolder)
399+
with
400+
| exn ->
401+
let text = ref ""
402+
try
403+
text := File.ReadAllText(fileName)
404+
with
405+
| _ -> ()
406+
407+
let text = if !text = "" then "" else sprintf " Package contains text: %s%s" !text Environment.NewLine
408+
failwithf "Error during extraction of %s.%s%s Message: %s" (Path.GetFullPath fileName) Environment.NewLine text exn.Message
398409

399410
// cleanup folder structure
400411
let rec cleanup (dir : DirectoryInfo) =
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
module Paket.ExtractPackageSpecs
2+
3+
open System.IO
4+
open Paket
5+
open NUnit.Framework
6+
open FsUnit
7+
open System
8+
open System.Net
9+
open Domain
10+
11+
[<Test>]
12+
let ``should report blocked download``() =
13+
let di = Path.Combine(Path.GetTempPath(),"PaketTests/Extract")
14+
if Directory.Exists di then
15+
Directory.Delete(di,true)
16+
Directory.CreateDirectory(di) |> ignore
17+
let fileName = Path.Combine(di,"FSharp.Data.nupkg")
18+
File.Copy("Nuspec/FSharp.Data.nuspec",fileName)
19+
20+
try
21+
NuGetV2.ExtractPackage(fileName,di,PackageName "FSharp.Data",SemVer.Parse("0.1.1"))
22+
|> Async.RunSynchronously
23+
24+
with
25+
| exn -> exn.Message
26+
|> fun error -> error.Contains("Package contains text:") |> shouldEqual true

‎tests/Paket.Tests/Paket.Tests.fsproj‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@
8787
<Compile Include="NugetVersionRangeSerializerSpecs.fs" />
8888
<Compile Include="DependencySetSpecs.fs" />
8989
<Compile Include="BindingRedirect.fs" />
90+
<Compile Include="ExtractPackageSpecs.fs" />
9091
<Compile Include="UtilsSpecs.fs" />
9192
<Compile Include="TemplateFileParsing.fs" />
9293
<Compile Include="NuspecWriterSpecs.fs" />

0 commit comments

Comments
 (0)