Browse Source

Add project generation step: ChangeLocalhostPortStep

pull/1128/head
Halil ibrahim Kalkan 7 years ago
parent
commit
b63929f492
  1. 2
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs
  2. 35
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeLocalhostPortStep.cs
  3. 6
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateInfoProvider.cs
  4. 16
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/MvcTemplate.cs

2
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs

@ -73,7 +73,7 @@ namespace Volo.Abp.Cli
if (!latestVersion.IsNullOrEmpty() && currentVersion != latestVersion)
{
Logger.LogInformation("");
Logger.LogWarning("ABP CLI has a newer version. Please update to get the latest features and fixes.");
Logger.LogWarning("ABP CLI has a newer version (" + latestVersion + "). Please update to get the latest features and fixes.");
Logger.LogWarning("");
Logger.LogWarning("Update Command: ");
Logger.LogWarning(" dotnet tool update -g Volo.Abp.Cli");

35
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeLocalhostPortStep.cs

@ -0,0 +1,35 @@
namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps
{
public class ChangeLocalhostPortStep : ProjectBuildPipelineStep
{
public string LaunchSettingsFilePath { get; }
public int[] PortNumbers { get; }
public ChangeLocalhostPortStep(
string launchSettingsFilePath,
params int[] portNumbers)
{
Check.NotNullOrEmpty(portNumbers, nameof(portNumbers));
LaunchSettingsFilePath = launchSettingsFilePath;
PortNumbers = portNumbers;
}
public override void Execute(ProjectBuildContext context)
{
var launchSettings = context.GetFile(LaunchSettingsFilePath);
var randomPort = RandomHelper.GetRandom(50001, 59990);
var newContent = launchSettings.Content;
for (var i = 0; i < PortNumbers.Length; i++)
{
newContent = newContent.Replace(
PortNumbers[i].ToString(),
(randomPort + i).ToString()
);
}
launchSettings.SetContent(newContent);
}
}
}

6
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateInfoProvider.cs

@ -9,15 +9,15 @@ namespace Volo.Abp.Cli.ProjectBuilding
{
public TemplateInfo GetDefault()
{
return Get(MvcApplicationTemplate.TemplateName);
return Get(MvcTemplate.TemplateName);
}
public TemplateInfo Get(string name)
{
switch (name)
{
case MvcApplicationTemplate.TemplateName:
return new MvcApplicationTemplate();
case MvcTemplate.TemplateName:
return new MvcTemplate();
case MvcModuleTemplate.TemplateName:
return new MvcModuleTemplate();
case ServiceTemplate.TemplateName:

16
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/MvcApplicationTemplate.cs → framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/MvcTemplate.cs

@ -4,14 +4,14 @@ using Volo.Abp.Cli.ProjectBuilding.Building.Steps;
namespace Volo.Abp.Cli.ProjectBuilding.Templates
{
public class MvcApplicationTemplate : TemplateInfo
public class MvcTemplate : TemplateInfo
{
/// <summary>
/// "mvc".
/// </summary>
public const string TemplateName = "mvc";
public MvcApplicationTemplate()
public MvcTemplate()
: base(TemplateName, DatabaseProvider.EntityFrameworkCore)
{
}
@ -21,6 +21,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates
var steps = new List<ProjectBuildPipelineStep>();
SwitchDatabaseProvider(context, steps);
RemoveOtherDatabaseProviders(context, steps);
ChangeLocalhostPort(steps);
return steps;
}
@ -47,5 +48,16 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates
steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.MongoDB"));
}
}
private void ChangeLocalhostPort(List<ProjectBuildPipelineStep> steps)
{
steps.Add(
new ChangeLocalhostPortStep(
"/src/MyCompanyName.MyProjectName.Web/Properties/launchSettings.json",
53929,
53932
)
);
}
}
}
Loading…
Cancel
Save