From ed0cecb15f4a0566840b30ac3aad6beb22aeb0f5 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Thu, 27 Aug 2020 11:02:28 +0300 Subject: [PATCH] Cli: Running switch commands in aspnet-core folder should switch angular project as well if it exist resolves https://github.com/abpframework/abp/issues/5191 --- .../ProjectModification/NpmPackagesUpdater.cs | 8 ++- .../PackagePreviewSwitcher.cs | 68 ++++++++++++++++--- 2 files changed, 66 insertions(+), 10 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs index 2db480506be..c71e9591c08 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs @@ -236,7 +236,7 @@ protected virtual async Task TryUpdatingPackage( } } - if (version == currentVersion) + if (string.IsNullOrEmpty(version) || version == currentVersion) { return false; } @@ -275,6 +275,12 @@ protected virtual async Task GetLatestVersion( ? versionList.First() : versionList.FirstOrDefault(v => !SemanticVersion.Parse(v).IsPrerelease); + if (string.IsNullOrEmpty(newVersion)) + { + _fileVersionStorage[package.Name] = newVersion; + return newVersion; + } + var newVersionWithPrefix = $"~{newVersion}"; _fileVersionStorage[package.Name] = newVersionWithPrefix; diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackagePreviewSwitcher.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackagePreviewSwitcher.cs index 60c7fd21b9f..66f39fa12f9 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackagePreviewSwitcher.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackagePreviewSwitcher.cs @@ -31,6 +31,7 @@ public async Task SwitchToPreview(CommandLineArgs commandLineArgs) { var solutionPath = GetSolutionPath(commandLineArgs); var solutionFolder = GetSolutionFolder(commandLineArgs); + var solutionAngularFolder = GetSolutionAngularFolder(solutionFolder); await _nugetPackagesVersionUpdater.UpdateSolutionAsync( solutionPath, @@ -40,42 +41,74 @@ await _npmPackagesUpdater.Update( solutionFolder, false, true); + + if (solutionAngularFolder != null) + { + await _npmPackagesUpdater.Update( + solutionAngularFolder, + false, + true); + } } public async Task SwitchToNightlyPreview(CommandLineArgs commandLineArgs) { var solutionPath = GetSolutionPath(commandLineArgs); var solutionFolder = GetSolutionFolder(commandLineArgs); + var solutionAngularFolder = GetSolutionAngularFolder(solutionFolder); _packageSourceManager.Add(solutionFolder, "ABP Nightly", "https://www.myget.org/F/abp-nightly/api/v3/index.json"); - await _nugetPackagesVersionUpdater.UpdateSolutionAsync( - solutionPath, - true); + if (solutionPath != null) + { + await _nugetPackagesVersionUpdater.UpdateSolutionAsync( + solutionPath, + true); + } await _npmPackagesUpdater.Update( solutionFolder, true); + + if (solutionAngularFolder != null) + { + await _npmPackagesUpdater.Update( + solutionAngularFolder, + true); + } } public async Task SwitchToStable(CommandLineArgs commandLineArgs) { var solutionPath = GetSolutionPath(commandLineArgs); var solutionFolder = GetSolutionFolder(commandLineArgs); + var solutionAngularFolder = GetSolutionAngularFolder(solutionFolder); _packageSourceManager.Remove(solutionFolder, "ABP Nightly"); - await _nugetPackagesVersionUpdater.UpdateSolutionAsync( - solutionPath, - false, - false, - true); + if (solutionPath != null) + { + await _nugetPackagesVersionUpdater.UpdateSolutionAsync( + solutionPath, + false, + false, + true); + } await _npmPackagesUpdater.Update( solutionFolder, false, false, true); + + if (solutionAngularFolder != null) + { + await _npmPackagesUpdater.Update( + solutionAngularFolder, + false, + false, + true); + } } private string GetSolutionPath(CommandLineArgs commandLineArgs) @@ -99,7 +132,7 @@ private string GetSolutionPath(CommandLineArgs commandLineArgs) } } - Logger.LogError("There is no solution or more that one solution in current directory."); + Logger.LogWarning("There is no solution or more that one solution in current directory."); return null; } @@ -112,6 +145,23 @@ private string GetSolutionFolder(CommandLineArgs commandLineArgs) ?? Directory.GetCurrentDirectory(); } + private string GetSolutionAngularFolder(string solutionFolder) + { + var upperAngularPath = Path.Combine(Directory.GetParent(solutionFolder)?.FullName ?? "", "angular"); + if (Directory.Exists(upperAngularPath)) + { + return upperAngularPath; + } + + var innerAngularPath = Path.Combine(solutionFolder, "angular"); + if (Directory.Exists(innerAngularPath)) + { + return innerAngularPath; + } + + return null; + } + public static class Options { public static class SolutionDirectory