diff --git a/src/nuget-cli/Program.cs b/src/nuget-cli/Program.cs index 7914c74..d6bae39 100644 --- a/src/nuget-cli/Program.cs +++ b/src/nuget-cli/Program.cs @@ -87,7 +87,7 @@ namespace nuget_cli } List reports = await PushPkgAsync(pargs); Console.WriteLine(JsonConvert.SerializeObject(reports)); - pushKO = reports.Count( r => !r.OK ); + pushKO = reports.Count( r => !r.OK && !r.AlreadyPresent); } }; commandSet.Add(push); diff --git a/src/nuget-cli/PushCommand.cs b/src/nuget-cli/PushCommand.cs index 74aadb7..134170a 100644 --- a/src/nuget-cli/PushCommand.cs +++ b/src/nuget-cli/PushCommand.cs @@ -1,9 +1,8 @@ using System; -using System.Collections.Generic; using System.IO; using System.Net; -using System.Net.Http; using System.Threading.Tasks; +using Newtonsoft.Json; namespace nuget_cli { @@ -37,10 +36,14 @@ namespace nuget_cli await Console.Error.WriteLineAsync(ex.Message); report.StatusCode = ex.Status.ToString(); report.OK = false; - using (var respStream = ex.Response.GetResponseStream()) + using (Stream respStream = ex.Response.GetResponseStream()) { StreamReader sr = new StreamReader(respStream); - report.Message = sr.ReadToEnd(); + string json = sr.ReadToEnd(); + var res = JsonConvert.DeserializeObject(json); + // ecode == 1 => package already present server side. + report.AlreadyPresent = res.ecode == 1; + report.Message = res.msg; } } catch (Exception ex) diff --git a/src/nuget-cli/UploadFilesToServerUsingWebRequest.cs b/src/nuget-cli/UploadFilesToServerUsingWebRequest.cs index 48e372e..d72c954 100644 --- a/src/nuget-cli/UploadFilesToServerUsingWebRequest.cs +++ b/src/nuget-cli/UploadFilesToServerUsingWebRequest.cs @@ -7,11 +7,11 @@ using Newtonsoft.Json; namespace nuget_cli { - public class nugetdresp + public class NugetdErrorMessage { + public string versionId { get; set; } public int ecode { get; set; } - public string message { get; set; } - public string id { get; set; } + public string msg { get; set; } } public class UploadFilesToServerUsingWebRequest { @@ -90,17 +90,10 @@ namespace nuget_cli { String json = re.ReadToEnd(); report.Message = json; - - var res = JsonConvert.DeserializeObject(json); - report.AlreadyPresent = res.ecode == 1; - var hrep = resp as HttpWebResponse; report.StatusCode = hrep.StatusCode.ToString(); - // ecode == 1 => package already present server side. - report.AlreadyPresent = res.ecode == 1; report.OK = hrep.StatusCode == HttpStatusCode.Accepted - || hrep.StatusCode == HttpStatusCode.OK - || report.AlreadyPresent; + || hrep.StatusCode == HttpStatusCode.OK; } else throw new Exception("Invalid server response type"); } diff --git a/src/nuget-host/packages/nuget-cli/1.0.0/nuget-cli-1.0.0.nupkg b/src/nuget-host/packages/nuget-cli/1.0.0/nuget-cli-1.0.0.nupkg new file mode 100644 index 0000000..2b57d2c Binary files /dev/null and b/src/nuget-host/packages/nuget-cli/1.0.0/nuget-cli-1.0.0.nupkg differ