diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ProjectBuildContext.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ProjectBuildContext.cs index 8b5522165f..e9c6135720 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ProjectBuildContext.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/ProjectBuildContext.cs @@ -1,4 +1,5 @@ -using JetBrains.Annotations; +using System.Collections.Generic; +using JetBrains.Annotations; using Volo.Abp.Cli.ProjectBuilding.Files; namespace Volo.Abp.Cli.ProjectBuilding.Building @@ -19,6 +20,8 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building public ProjectResult Result { get; set; } + public List Symbols { get; } //TODO: Fill the symbols, like "UI-Angular", "CMS-KIT"! + public ProjectBuildContext( TemplateInfo template, ModuleInfo module, @@ -29,6 +32,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building Module = module; TemplateFile = Check.NotNull(templateFile, nameof(templateFile)); BuildArgs = Check.NotNull(buildArgs, nameof(buildArgs)); + Symbols = new List(); Result = new ProjectResult(); } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/TemplateCodeDeleteStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/TemplateCodeDeleteStep.cs index 8f17b90702..9b1183ba9a 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/TemplateCodeDeleteStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/TemplateCodeDeleteStep.cs @@ -10,7 +10,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps { if (file.Name.EndsWith(".cs") || file.Name.EndsWith(".csproj") || file.Name.EndsWith(".cshtml") || file.Name.EndsWith(".json")) { - file.RemoveTemplateCode(); + file.RemoveTemplateCode(context.Symbols); file.RemoveTemplateCodeMarkers(); } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Files/FileEntryExtensions.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Files/FileEntryExtensions.cs index 34200d41ac..2e90d63f92 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Files/FileEntryExtensions.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Files/FileEntryExtensions.cs @@ -11,16 +11,18 @@ namespace Volo.Abp.Cli.ProjectBuilding.Files return file; } - public static void RemoveTemplateCode(this FileEntry file) + public static void RemoveTemplateCode(this FileEntry file, List symbols) { - RemoveMarkedTemplateCode(file, ""); + RemoveMarkedTemplateCode(file, symbols); } - + + //TODO: Remove this method and switch to symbol usage public static void RemoveTemplateCodeIf(this FileEntry file, string condition) { RemoveByCondition(file, "IF", condition); } + //TODO: Remove this method and switch to symbol usage public static void RemoveTemplateCodeIfNot(this FileEntry file, string condition) { RemoveByCondition(file, "IF-NOT", condition); @@ -57,11 +59,13 @@ namespace Volo.Abp.Cli.ProjectBuilding.Files file.SetLines(newLines); } + //TODO: Remove this method and switch to symbol usage private static void RemoveByCondition(this FileEntry file, string conditionName, string condition) { RemoveMarkedTemplateCode(file, $""); } + //TODO: Remove this method and switch to symbol usage private static void RemoveMarkedTemplateCode(this FileEntry file, string beginMark) { if (!file.Content.Contains("")) @@ -94,5 +98,48 @@ namespace Volo.Abp.Cli.ProjectBuilding.Files file.SetLines(newLines); } + + private static void RemoveMarkedTemplateCode(this FileEntry file, List symbols) + { + if (!file.Content.Contains("")) + { + return; + } + + file.NormalizeLineEndings(); + + var lines = file.GetLines(); + var newLines = new List(); + + for (int i = 0; i < lines.Length; i++) + { + if (lines[i].Contains("")) + { + ++i; + } + + ++i; + } + + if (i < lines.Length) + { + newLines.Add(lines[i]); + } + } + + file.SetLines(newLines); + } } }