From 49efd92a8f8bdbe261810b91f107cd02b3a2c3c3 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Thu, 28 Apr 2022 14:19:25 +0300 Subject: [PATCH] Cli: Configure Docker Files --- .../Building/Steps/MoveFileStep.cs | 25 ++++++++++++ .../Building/Steps/RemoveFileStep.cs | 2 +- .../Templates/App/AppNoLayersTemplateBase.cs | 40 +++++++++++++++---- 3 files changed, 58 insertions(+), 9 deletions(-) create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/MoveFileStep.cs diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/MoveFileStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/MoveFileStep.cs new file mode 100644 index 0000000000..8509c972a7 --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/MoveFileStep.cs @@ -0,0 +1,25 @@ +namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps; + +public class MoveFileStep : ProjectBuildPipelineStep +{ + private readonly string _filePath; + private readonly string _newPath; + + public MoveFileStep(string filePath, string newPath) + { + _filePath = filePath; + _newPath = newPath; + } + + public override void Execute(ProjectBuildContext context) + { + var fileToMove = context.Files.Find(x => x.Name == _filePath); + + if (fileToMove == null) + { + return; + } + + fileToMove.SetName(_newPath); + } +} diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveFileStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveFileStep.cs index 203a927536..8e66d26547 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveFileStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveFileStep.cs @@ -12,7 +12,7 @@ public class RemoveFileStep : ProjectBuildPipelineStep public override void Execute(ProjectBuildContext context) { - var fileToRemove = context.Files.Find(x => x.Name.EndsWith(_filePath)); + var fileToRemove = context.Files.Find(x => x.Name == _filePath);; if (fileToRemove != null) { context.Files.Remove(fileToRemove); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplateBase.cs index 312181e721..c3061da8cd 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplateBase.cs @@ -81,19 +81,12 @@ public abstract class AppNoLayersTemplateBase : AppTemplateBase break; } - //ConfigureTenantSchema(context, steps); - //SwitchDatabaseProvider(context, steps); - //DeleteUnrelatedProjects(context, steps); steps.Add(new RemoveFolderStep("/aspnet-core/MyCompanyName.MyProjectName/Migrations")); - //RemoveMigrations(context, steps); - //ConfigureTieredArchitecture(context, steps); - //ConfigurePublicWebSite(context, steps); - //RemoveUnnecessaryPorts(context, steps); RandomizeSslPorts(context, steps); RandomizeStringEncryption(context, steps); UpdateNuGetConfig(context, steps); ChangeConnectionString(context, steps); - //CleanupFolderHierarchy(context, steps); + ConfigureDockerFiles(context, steps); if (context.BuildArgs.UiFramework != UiFramework.Angular) { @@ -102,4 +95,35 @@ public abstract class AppNoLayersTemplateBase : AppTemplateBase return steps; } + + private void ConfigureDockerFiles(ProjectBuildContext context, List steps) + { + switch (context.BuildArgs.UiFramework) + { + case UiFramework.None: + steps.Add(new RemoveFileStep("/aspnet-core/etc/docker/docker-compose.Blazor.Server.yml")); + steps.Add(new RemoveFileStep("/aspnet-core/etc/docker/docker-compose.Mvc.yml")); + steps.Add(new RemoveFileStep("/aspnet-core/etc/docker/dynamic-env.json")); + steps.Add(new MoveFileStep("/aspnet-core/etc/docker/docker-compose.Host.yml", "/aspnet-core/etc/docker/docker-compose.yml")); + break; + case UiFramework.Angular: + steps.Add(new RemoveFileStep("/aspnet-core/etc/docker/docker-compose.Blazor.Server.yml")); + steps.Add(new RemoveFileStep("/aspnet-core/etc/docker/docker-compose.Mvc.yml")); + steps.Add(new MoveFileStep("/aspnet-core/etc/docker/docker-compose.Host.yml", "/aspnet-core/etc/docker/docker-compose.yml")); + break; + case UiFramework.BlazorServer: + steps.Add(new RemoveFileStep("/aspnet-core/etc/docker/docker-compose.Host.yml")); + steps.Add(new RemoveFileStep("/aspnet-core/etc/docker/docker-compose.Mvc.yml")); + steps.Add(new RemoveFileStep("/aspnet-core/etc/docker/dynamic-env.json")); + steps.Add(new MoveFileStep("/aspnet-core/etc/docker/docker-compose.Blazor.Server.yml", "/aspnet-core/etc/docker/docker-compose.yml")); + break; + case UiFramework.NotSpecified: + case UiFramework.Mvc: + steps.Add(new RemoveFileStep("/aspnet-core/etc/docker/docker-compose.Blazor.Server.yml")); + steps.Add(new RemoveFileStep("/aspnet-core/etc/docker/docker-compose.Host.yml")); + steps.Add(new RemoveFileStep("/aspnet-core/etc/docker/dynamic-env.json")); + steps.Add(new MoveFileStep("/aspnet-core/etc/docker/docker-compose.Mvc.yml", "/aspnet-core/etc/docker/docker-compose.yml")); + break; + } + } }