Browse Source

cli: remove abp nightly source when switched to stable

pull/4782/head
Yunus Emre Kalkan 6 years ago
parent
commit
2c9f32b3bb
  1. 11
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackagePreviewSwitcher.cs
  2. 56
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackageSourceManager.cs

11
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackagePreviewSwitcher.cs

@ -11,17 +11,17 @@ namespace Volo.Abp.Cli.ProjectModification
{
public class PackagePreviewSwitcher : ITransientDependency
{
private readonly PackageSourceAdder _packageSourceAdder;
private readonly PackageSourceManager _packageSourceManager;
private readonly NpmPackagesUpdater _npmPackagesUpdater;
private readonly VoloNugetPackagesVersionUpdater _nugetPackagesVersionUpdater;
public ILogger<PackagePreviewSwitcher> Logger { get; set; }
public PackagePreviewSwitcher(PackageSourceAdder packageSourceAdder,
public PackagePreviewSwitcher(PackageSourceManager packageSourceManager,
NpmPackagesUpdater npmPackagesUpdater,
VoloNugetPackagesVersionUpdater nugetPackagesVersionUpdater)
{
_packageSourceAdder = packageSourceAdder;
_packageSourceManager = packageSourceManager;
_npmPackagesUpdater = npmPackagesUpdater;
_nugetPackagesVersionUpdater = nugetPackagesVersionUpdater;
Logger = NullLogger<PackagePreviewSwitcher>.Instance;
@ -44,8 +44,7 @@ namespace Volo.Abp.Cli.ProjectModification
public async Task SwitchToNightlyPreview(CommandLineArgs commandLineArgs)
{
// TODO: Remove this when switched to stable
_packageSourceAdder.Add("ABP Nightly", "https://www.myget.org/F/abp-nightly/api/v3/index.json");
_packageSourceManager.Add("ABP Nightly", "https://www.myget.org/F/abp-nightly/api/v3/index.json");
var solutionPath = GetSolutionPath(commandLineArgs);
var solutionFolder = GetSolutionFolder(commandLineArgs);
@ -61,6 +60,8 @@ namespace Volo.Abp.Cli.ProjectModification
public async Task SwitchToStable(CommandLineArgs commandLineArgs)
{
_packageSourceManager.Remove("ABP Nightly");
var solutionPath = GetSolutionPath(commandLineArgs);
var solutionFolder = GetSolutionFolder(commandLineArgs);

56
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackageSourceAdder.cs → framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackageSourceManager.cs

@ -7,19 +7,18 @@ using Volo.Abp.DependencyInjection;
namespace Volo.Abp.Cli.ProjectModification
{
public class PackageSourceAdder: ITransientDependency
public class PackageSourceManager: ITransientDependency
{
public ILogger<PackageSourceAdder> Logger { get; set; }
public ILogger<PackageSourceManager> Logger { get; set; }
public PackageSourceAdder()
public PackageSourceManager()
{
Logger = NullLogger<PackageSourceAdder>.Instance;
Logger = NullLogger<PackageSourceManager>.Instance;
}
public void Add(string sourceKey, string sourceValue)
{
var nugetConfigPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
"NuGet", "NuGet.Config");
var nugetConfigPath = GetNugetConfigPath();
if (!File.Exists(nugetConfigPath))
{
@ -63,6 +62,51 @@ namespace Volo.Abp.Cli.ProjectModification
}
}
public void Remove(string sourceKey)
{
var nugetConfigPath = GetNugetConfigPath();
if (!File.Exists(nugetConfigPath))
{
return;
}
var fileContent = File.ReadAllText(nugetConfigPath);
if (!fileContent.Contains($"\"{sourceKey}\""))
{
return;
}
Logger.LogInformation($"Removing \"{sourceKey}\" from nuget sources...");
try
{
var doc = new XmlDocument() { PreserveWhitespace = true };
doc.Load(GenerateStreamFromString(fileContent));
var nodes = doc.SelectNodes($"/configuration/packageSources[@key='{sourceKey}']");
if (nodes != null && nodes.Count > 0)
{
nodes[0].ParentNode.RemoveChild(nodes[0]);
}
File.WriteAllText(nugetConfigPath, doc.OuterXml);
}
catch
{
Logger.LogWarning($"Removing \"{sourceKey}\" from nuget sources FAILED.");
}
}
private static string GetNugetConfigPath()
{
return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
"NuGet", "NuGet.Config");
}
private static Stream GenerateStreamFromString(string s)
{
var stream = new MemoryStream();
Loading…
Cancel
Save