40 lines
1.3 KiB
C#
40 lines
1.3 KiB
C#
using System;
|
|
|
|
namespace AspNetCoreSdkTests
|
|
{
|
|
public class NuGetPackageSource
|
|
{
|
|
public static NuGetPackageSource None { get; } = new NuGetPackageSource
|
|
{
|
|
Name = nameof(None),
|
|
SourceArgumentLazy = new Lazy<string>(string.Empty),
|
|
};
|
|
|
|
public static NuGetPackageSource NuGetOrg { get; } = new NuGetPackageSource
|
|
{
|
|
Name = nameof(NuGetOrg),
|
|
SourceArgumentLazy = new Lazy<string>("--source https://api.nuget.org/v3/index.json"),
|
|
};
|
|
|
|
public static NuGetPackageSource EnvironmentVariable { get; } = new NuGetPackageSource
|
|
{
|
|
Name = nameof(EnvironmentVariable),
|
|
SourceArgumentLazy = new Lazy<string>(() => $"--source {GetPackageSourceFromEnvironment()}"),
|
|
};
|
|
|
|
private NuGetPackageSource() { }
|
|
|
|
public string Name { get; private set; }
|
|
public string SourceArgument => SourceArgumentLazy.Value;
|
|
private Lazy<string> SourceArgumentLazy { get; set; }
|
|
|
|
public override string ToString() => Name;
|
|
|
|
private static string GetPackageSourceFromEnvironment()
|
|
{
|
|
return Environment.GetEnvironmentVariable("NUGET_PACKAGE_SOURCE") ??
|
|
throw new InvalidOperationException("Environment variable NUGET_PACKAGE_SOURCE is required but not set");
|
|
}
|
|
}
|
|
}
|