From 716df65ee21605e2be5b12b7a548d15c874600aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 30 Jul 2019 15:00:29 +0300 Subject: [PATCH] Fix NugetReferenceReplaceStep --- .../Volo/Abp/Cli/CliConsts.cs | 2 ++ .../Cli/ProjectBuilding/AbpIoTemplateStore.cs | 7 ++++--- .../Steps/NugetReferenceReplaceStep.cs | 20 ++++++++++++++----- .../Abp/Cli/ProjectBuilding/TemplateFile.cs | 5 ++++- 4 files changed, 25 insertions(+), 9 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliConsts.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliConsts.cs index 341bf1880d..e4ddf2a3ee 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliConsts.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliConsts.cs @@ -3,5 +3,7 @@ public static class CliConsts { public const string Command = "AbpCliCommand"; + + public const string BranchPrefix = "branch@"; } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoTemplateStore.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoTemplateStore.cs index 01783dfc45..21f868e73f 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoTemplateStore.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoTemplateStore.cs @@ -41,9 +41,10 @@ namespace Volo.Abp.Cli.ProjectBuilding string name, string version = null) { + var latestVersion = await GetLatestTemplateVersionAsync(name); if (version == null) { - version = await GetLatestTemplateVersionAsync(name); + version = latestVersion; } DirectoryHelper.CreateIfNotExists(CliPaths.TemplateCache); @@ -52,7 +53,7 @@ namespace Volo.Abp.Cli.ProjectBuilding if (Options.CacheTemplates && File.Exists(localCacheFile)) { Logger.LogInformation("Using cached template: " + name + ", version: " + version); - return new TemplateFile(File.ReadAllBytes(localCacheFile), version); + return new TemplateFile(File.ReadAllBytes(localCacheFile), version, latestVersion); } Logger.LogInformation("Downloading template: " + name + ", version: " + version); @@ -70,7 +71,7 @@ namespace Volo.Abp.Cli.ProjectBuilding File.WriteAllBytes(localCacheFile, fileContent); } - return new TemplateFile(fileContent, version); + return new TemplateFile(fileContent, version, latestVersion); } private async Task GetLatestTemplateVersionAsync(string name) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/NugetReferenceReplaceStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/NugetReferenceReplaceStep.cs index d129bbde55..c34bf7c9f7 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/NugetReferenceReplaceStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/NugetReferenceReplaceStep.cs @@ -10,11 +10,17 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps { public override void Execute(ProjectBuildContext context) { + var nugetPackageVersion = context.TemplateFile.Version; + if (nugetPackageVersion.StartsWith(CliConsts.BranchPrefix)) + { + nugetPackageVersion = context.TemplateFile.LatestVersion; + } + new NugetReferenceReplacer( context.Files, "MyCompanyName", "MyProjectName", - context.TemplateFile.Version + nugetPackageVersion ).Run(); } @@ -23,14 +29,18 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps private readonly List _entries; private readonly string _companyNamePlaceHolder; private readonly string _projectNamePlaceHolder; - private readonly string _latestNugetPackageVersion; + private readonly string _nugetPackageVersion; - public NugetReferenceReplacer(List entries, string companyNamePlaceHolder, string projectNamePlaceHolder, string latestNugetPackageVersion) + public NugetReferenceReplacer( + List entries, + string companyNamePlaceHolder, + string projectNamePlaceHolder, + string nugetPackageVersion) { _entries = entries; _companyNamePlaceHolder = companyNamePlaceHolder; _projectNamePlaceHolder = projectNamePlaceHolder; - _latestNugetPackageVersion = latestNugetPackageVersion; + _nugetPackageVersion = nugetPackageVersion; } public void Run() @@ -78,7 +88,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps newNode.Attributes.Append(includeAttr); var versionAttr = doc.CreateAttribute("Version"); - versionAttr.Value = _latestNugetPackageVersion; + versionAttr.Value = _nugetPackageVersion; newNode.Attributes.Append(versionAttr); oldNode.ParentNode.ReplaceChild(newNode, oldNode); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateFile.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateFile.cs index 234a7b509a..c7f9e77cb2 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateFile.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateFile.cs @@ -4,12 +4,15 @@ { public string Version { get; } + public string LatestVersion { get; } + public byte[] FileBytes { get; } - public TemplateFile(byte[] fileBytes, string version) + public TemplateFile(byte[] fileBytes, string version, string latestVersion) { FileBytes = fileBytes; Version = version; + LatestVersion = latestVersion; } } } \ No newline at end of file