From 17e3cebd490994dc94d0cf6a3911efa9925e41b8 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 20 Jun 2022 10:28:20 +0300 Subject: [PATCH] Cli: Don't allow company name in ms-service generation --- .../Commands/ProjectCreationCommandBase.cs | 38 ++++++++++++++++--- .../Abp/Cli/ProjectBuilding/SolutionName.cs | 2 + 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs index 6e280d7dc3..e672c763ae 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs @@ -129,18 +129,38 @@ public abstract class ProjectCreationCommandBase SolutionName solutionName; if (MicroserviceServiceTemplateBase.IsMicroserviceServiceTemplate(template)) { - var slnFile = Directory.GetFiles(outputFolderRoot, "*.sln").FirstOrDefault(); + var slnPath = commandLineArgs.Options.GetOrNull(Options.MainSolution.Short, Options.MainSolution.Long); - if (slnFile == null) + if (slnPath == null) { - throw new CliUsageException("This command should be run inside a folder that contains a microservice solution!"); + slnPath = Directory.GetFiles(outputFolderRoot, "*.sln").FirstOrDefault(); + } + else if (slnPath.EndsWith(".sln")) + { + Directory.SetCurrentDirectory(Path.GetDirectoryName(slnPath)); + outputFolderRoot = Path.GetDirectoryName(slnPath); + } + else if (!Directory.Exists(slnPath)) + { + slnPath = null; + } + else + { + Directory.SetCurrentDirectory(slnPath); + outputFolderRoot = slnPath; + slnPath = Directory.GetFiles(outputFolderRoot, "*.sln").FirstOrDefault(); + } + + if (slnPath == null) + { + throw new CliUsageException($"This command should be run inside a folder that contains a microservice solution! Or use -{Options.MainSolution.Short} parameter."); } - var microserviceSolutionName = Path.GetFileName(slnFile).RemovePostFix(".sln"); + var microserviceSolutionName = Path.GetFileName(slnPath).RemovePostFix(".sln"); - version ??= SolutionPackageVersionFinder.Find(slnFile); + version ??= SolutionPackageVersionFinder.Find(slnPath); solutionName = SolutionName.Parse(microserviceSolutionName, projectName); - outputFolder = MicroserviceServiceTemplateBase.CalculateTargetFolder(outputFolderRoot, projectName); + outputFolder = MicroserviceServiceTemplateBase.CalculateTargetFolder(outputFolderRoot, solutionName.ProjectName); uiFramework = uiFramework == UiFramework.NotSpecified ? FindMicroserviceSolutionUiFramework(outputFolderRoot) : uiFramework; } else @@ -512,5 +532,11 @@ public abstract class ProjectCreationCommandBase { public const string Short = "pwa"; } + + public static class MainSolution + { + public const string Short = "ms"; + public const string Long = "main-solution"; + } } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/SolutionName.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/SolutionName.cs index 784fca27ad..13f759c851 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/SolutionName.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/SolutionName.cs @@ -19,6 +19,8 @@ public class SolutionName public static SolutionName Parse(string fullName, string microserviceName) { + microserviceName = microserviceName.Replace(".", string.Empty); + return new SolutionName(fullName + "." + microserviceName, fullName, microserviceName); }