private static Command r(ISupportNuget nugetKernel) { var rDirective = new Command("#r") { new Argument <PackageReferenceOrFileInfo>( result => { var token = result.Tokens .Select(t => t.Value) .SingleOrDefault(); if (PackageReference.TryParse(token, out var reference)) { return(reference); } if (token != null && !token.StartsWith("nuget:") && !Path.EndsInDirectorySeparator(token)) { return(new FileInfo(token)); } result.ErrorMessage = $"Unable to parse package reference: \"{token}\""; return(null); }) { Name = "package" } }; rDirective.Handler = CommandHandler.Create <PackageReferenceOrFileInfo, KernelInvocationContext>(HandleAddPackageReference); return(rDirective); Task HandleAddPackageReference( PackageReferenceOrFileInfo package, KernelInvocationContext context) { if (package?.Value is PackageReference pkg) { var alreadyGotten = nugetKernel.ResolvedPackageReferences .Concat(nugetKernel.RequestedPackageReferences) .FirstOrDefault(r => r.PackageName.Equals(pkg.PackageName, StringComparison.OrdinalIgnoreCase)); if (alreadyGotten is { } && !string.IsNullOrWhiteSpace(pkg.PackageVersion) && pkg.PackageVersion != alreadyGotten.PackageVersion) { var errorMessage = GenerateErrorMessage(pkg, alreadyGotten).ToString(OutputMode.NonAnsi); context.Publish(new ErrorProduced(errorMessage)); }
private static Command i(ISupportNuget nugetKernel) { var iDirective = new Command("#i") { new Argument <string>("source") }; iDirective.Handler = CommandHandler.Create <string, KernelInvocationContext>((source, context) => { nugetKernel.AddRestoreSource(source.Replace("nuget:", "")); IHtmlContent content = div( strong("Restore sources"), ul(nugetKernel.RestoreSources .Select(s => li(span(s))))); context.DisplayAsync(content); }); return(iDirective); }
public PackageRestoreContext(ISupportNuget iSupportNuget) { _iSupportNuget = iSupportNuget; AppDomain.CurrentDomain.AssemblyLoad += OnAssemblyLoad; }