diff --git a/src/nbgv/Program.cs b/src/nbgv/Program.cs index e9ae5d75..aad07d3f 100644 --- a/src/nbgv/Program.cs +++ b/src/nbgv/Program.cs @@ -215,9 +215,23 @@ private static Parser BuildCommandLine() } } }, (MiddlewareOrder)(-3000)) // MiddlewareOrderInternal.ExceptionHandler so [parse] directive is accurate. + .UseExceptionHandler((ex, context) => PrintException(ex, context)) .Build(); } + private static void PrintException(Exception ex, InvocationContext context) + { + try + { + Console.Error.WriteLine("Unhandled exception: {0}", ex); + } + catch (Exception ex2) + { + Console.Error.WriteLine("Unhandled exception: {0}", ex.Message); + Console.Error.WriteLine("Unhandled exception while trying to print string version of the above exception: {0}", ex2); + } + } + private static int MainInner(string[] args) { try @@ -347,16 +361,16 @@ private static int OnInstallCommand(string path, string version, IReadOnlyList metadata, string format, string variable, string commitIsh) + private static int OnGetVersionCommand(string project, IReadOnlyList metadata, string format, string variable, string commitish) { if (string.IsNullOrEmpty(format)) { format = DefaultOutputFormat; } - if (string.IsNullOrEmpty(commitIsh)) + if (string.IsNullOrEmpty(commitish)) { - commitIsh = DefaultRef; + commitish = DefaultRef; } string searchPath = GetSpecifiedOrCurrentDirectoryPath(project); @@ -368,9 +382,9 @@ private static int OnGetVersionCommand(string project, IReadOnlyList met return (int)ExitCodes.NoGitRepo; } - if (!context.TrySelectCommit(commitIsh)) + if (!context.TrySelectCommit(commitish)) { - Console.Error.WriteLine("rev-parse produced no commit for {0}", commitIsh); + Console.Error.WriteLine("rev-parse produced no commit for {0}", commitish); return (int)ExitCodes.BadGitRef; } @@ -759,7 +773,7 @@ private static async Task GetLatestPackageVersionAsync(string packageId, var providers = new List>(); providers.AddRange(Repository.Provider.GetCoreV3()); // Add v3 API support - var sourceRepositoryProvider = new SourceRepositoryProvider(settings, providers); + var sourceRepositoryProvider = new SourceRepositoryProvider(new PackageSourceProvider(settings), providers); // Select package sources based on NuGet.Config files or given options, as 'nuget.exe restore' command does // See also 'DownloadCommandBase.GetPackageSources(ISettings)' at https://github.com/NuGet/NuGet.Client/blob/dev/src/NuGet.Clients/NuGet.CommandLine/Commands/DownloadCommandBase.cs diff --git a/src/nbgv/nbgv.csproj b/src/nbgv/nbgv.csproj index 63465683..031878f0 100644 --- a/src/nbgv/nbgv.csproj +++ b/src/nbgv/nbgv.csproj @@ -10,12 +10,11 @@ - - + - +