From 356e696b151ed9d744614e0d177bb8328c00573b Mon Sep 17 00:00:00 2001 From: Ebicoglu Date: Wed, 9 Mar 2022 14:15:54 +0300 Subject: [PATCH] closes #9279 --- .../Volo/Abp/Cli/CliConsts.cs | 15 +++++++- .../Steps/CreateAppSettingsSecretsStep.cs | 35 +++++++++++-------- .../Building/Steps/LicenseCodeReplaceStep.cs | 6 ++-- .../ProjectBuilding/Building/TemplateInfo.cs | 2 +- .../TemplateProjectBuildPipelineBuilder.cs | 5 +-- 5 files changed, 40 insertions(+), 23 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 ce5baf1a38..ac4747de5d 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 @@ -1,4 +1,11 @@ -namespace Volo.Abp.Cli; +using System.Collections.Generic; +using System.Security.Policy; +using Volo.Abp.Cli.ProjectBuilding.Templates.App; +using Volo.Abp.Cli.ProjectBuilding.Templates.Microservice; +using Volo.Abp.Cli.ProjectBuilding.Templates.Module; +using Volo.Abp.Cli.ProjectBuilding.Templates.MvcModule; + +namespace Volo.Abp.Cli; public static class CliConsts { @@ -11,4 +18,10 @@ public static class CliConsts public const string HttpClientName = "AbpHttpClient"; public const string LogoutUrl = CliUrls.WwwAbpIo + "api/license/logout"; + + public const string LicenseCodePlaceHolder = @""; + + public const string AppSettingsJsonFileName = "appsettings.json"; + + public const string AppSettingsSecretJsonFileName = "appsettings.secrets.json"; } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/CreateAppSettingsSecretsStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/CreateAppSettingsSecretsStep.cs index 82d736bbde..5a84bda994 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/CreateAppSettingsSecretsStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/CreateAppSettingsSecretsStep.cs @@ -6,28 +6,28 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps; public class CreateAppSettingsSecretsStep : ProjectBuildPipelineStep { - private const string FileName = "appsettings.secrets.json"; - private const string AppSettingsFileName = "appsettings.json"; private const string AppSettingsPlaceholder = ""; public override void Execute(ProjectBuildContext context) { var appSettingsFiles = context.Files - .Where(x => - x.Name.EndsWith(AppSettingsFileName) && - NotBlazorWasmProject(x.Name)) + .Where(x => x.Name.EndsWith(CliConsts.AppSettingsJsonFileName) && NotBlazorWasmProject(x.Name)) .ToList(); - var content = context.Template.IsPro() - ? $"{{{Environment.NewLine} \"AbpLicenseCode\": \"\" {Environment.NewLine}}}" - : $"{{{Environment.NewLine}}}"; + if (!appSettingsFiles.Any()) + { + return; + } + var appsettingsSecretJsonContent = GetAppSettingsSecretJsonContent(context); + foreach (var appSettingsFile in appSettingsFiles) { context.Files.Add(new FileEntry( - appSettingsFile.Name.Replace(AppSettingsFileName, FileName), - content.GetBytes(), - false)); + appSettingsFile.Name.Replace(CliConsts.AppSettingsJsonFileName, CliConsts.AppSettingsSecretJsonFileName), + appsettingsSecretJsonContent, + false) + ); } var projectFiles = context.Files.Where(x => x.Content.Contains(AppSettingsPlaceholder)).ToList(); @@ -38,6 +38,13 @@ public class CreateAppSettingsSecretsStep : ProjectBuildPipelineStep } } + private static byte[] GetAppSettingsSecretJsonContent(ProjectBuildContext context) + { + return context.Template.IsPro() + ? $"{{{Environment.NewLine} \"AbpLicenseCode\": \"{CliConsts.LicenseCodePlaceHolder}\" {Environment.NewLine}}}".GetBytes() + : $"{{{Environment.NewLine}}}".GetBytes(); + } + private static bool NotBlazorWasmProject(string fileName) { return !fileName.Contains("Blazor/wwwroot") && !fileName.Contains("Blazor.Host/wwwroot"); @@ -45,11 +52,11 @@ public class CreateAppSettingsSecretsStep : ProjectBuildPipelineStep private static string ReplaceAppSettingsSecretsPlaceholder(string content) { - var replaceContent = $"{Environment.NewLine}" + - $" {Environment.NewLine}" + + var replaceContent = $"{Environment.NewLine}" + + $" {Environment.NewLine}" + $" PreserveNewest{Environment.NewLine}" + $" Always{Environment.NewLine}" + " "; return content.Replace(AppSettingsPlaceholder, replaceContent); } -} +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/LicenseCodeReplaceStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/LicenseCodeReplaceStep.cs index 5ed63e4021..6fa6a4ee7c 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/LicenseCodeReplaceStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/LicenseCodeReplaceStep.cs @@ -12,12 +12,12 @@ public class LicenseCodeReplaceStep : ProjectBuildPipelineStep var licenseCode = context.BuildArgs.ExtraProperties.GetOrDefault("license-code"); var appSettingsJsonFiles = context.Files.Where(f => - f.Name.EndsWith("appsettings.json", StringComparison.OrdinalIgnoreCase) || - f.Name.EndsWith("appsettings.secrets.json", StringComparison.OrdinalIgnoreCase)); + f.Name.EndsWith(CliConsts.AppSettingsJsonFileName, StringComparison.OrdinalIgnoreCase) || + f.Name.EndsWith(CliConsts.AppSettingsSecretJsonFileName, StringComparison.OrdinalIgnoreCase)); foreach (var appSettingsJson in appSettingsJsonFiles) { - appSettingsJson.ReplaceText(@"", licenseCode); + appSettingsJson.ReplaceText(CliConsts.LicenseCodePlaceHolder, licenseCode); } } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateInfo.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateInfo.cs index 9000053d30..88bdc27973 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateInfo.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateInfo.cs @@ -33,6 +33,6 @@ public abstract class TemplateInfo public bool IsPro() { - return Name.EndsWith("pro", StringComparison.OrdinalIgnoreCase); + return Name.EndsWith("-pro", StringComparison.OrdinalIgnoreCase); } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs index 230a6018f3..d991c7101e 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/TemplateProjectBuildPipelineBuilder.cs @@ -26,10 +26,7 @@ public static class TemplateProjectBuildPipelineBuilder pipeline.Steps.Add(new TemplateCodeDeleteStep()); pipeline.Steps.Add(new SolutionRenameStep()); - if (context.Template.Name == AppProTemplate.TemplateName || - context.Template.Name == MicroserviceProTemplate.TemplateName || - context.Template.Name == MicroserviceServiceProTemplate.TemplateName || - context.Template.Name == ModuleProTemplate.TemplateName) + if (context.Template.IsPro()) { pipeline.Steps.Add(new LicenseCodeReplaceStep()); // todo: move to custom steps? }