mirror of https://github.com/abpframework/abp.git
committed by
GitHub
15 changed files with 954 additions and 420 deletions
File diff suppressed because it is too large
@ -0,0 +1,76 @@ |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
|
|||
namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps; |
|||
|
|||
public class ChangeThemeStyleStep : ProjectBuildPipelineStep |
|||
{ |
|||
public override void Execute(ProjectBuildContext context) |
|||
{ |
|||
if (context.BuildArgs.Theme != Theme.LeptonX) |
|||
{ |
|||
return; |
|||
} |
|||
|
|||
switch (context.BuildArgs.ThemeStyle) |
|||
{ |
|||
case ThemeStyle.Light: |
|||
ChangeThemeStyle(context, themeStyleName: "Light"); |
|||
break; |
|||
case ThemeStyle.Dark: |
|||
ChangeThemeStyle(context, themeStyleName: "Dark"); |
|||
break; |
|||
} |
|||
} |
|||
|
|||
private void ChangeThemeStyle(ProjectBuildContext context, string themeStyleName) |
|||
{ |
|||
var defaultThemeStyleName = "LeptonXStyleNames.Dim"; |
|||
var newThemeStyleName = $"LeptonXStyleNames.{themeStyleName}"; |
|||
|
|||
var filePaths = new List<string> |
|||
{ |
|||
"/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs", |
|||
"/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs", |
|||
"/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs", |
|||
"/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs", |
|||
"/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs", |
|||
"/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs", |
|||
"/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs", |
|||
"/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs", |
|||
"/MyCompanyName.MyProjectName.Host/MyProjectNameModule.cs", |
|||
"/MyCompanyName.MyProjectName.Host.Mongo/MyProjectNameModule.cs", |
|||
"/MyCompanyName.MyProjectName.Mvc/MyProjectNameModule.cs", |
|||
"/MyCompanyName.MyProjectName.Mvc.Mongo/MyProjectNameModule.cs", |
|||
"/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs", |
|||
"/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs", |
|||
}; |
|||
|
|||
foreach(var filePath in filePaths) |
|||
{ |
|||
ChangeThemeStyleName(context, filePath, defaultThemeStyleName, newThemeStyleName); |
|||
} |
|||
} |
|||
|
|||
protected void ChangeThemeStyleName(ProjectBuildContext context, string filePath, string oldThemeStyleName, string newThemeStyleName) |
|||
{ |
|||
var file = context.Files.FirstOrDefault(x => x.Name.Contains(filePath)); |
|||
if (file == null) |
|||
{ |
|||
return; |
|||
} |
|||
|
|||
file.NormalizeLineEndings(); |
|||
|
|||
var lines = file.GetLines(); |
|||
for (var i = 0; i < lines.Length; i++) |
|||
{ |
|||
if (lines[i].Contains(oldThemeStyleName)) |
|||
{ |
|||
lines[i] = lines[i].Replace(oldThemeStyleName, newThemeStyleName); |
|||
} |
|||
} |
|||
|
|||
file.SetLines(lines); |
|||
} |
|||
} |
|||
@ -1,7 +1,10 @@ |
|||
namespace Volo.Abp.Cli.ProjectBuilding.Building; |
|||
|
|||
public enum Theme |
|||
public enum Theme : byte |
|||
{ |
|||
LeptonXLite = 0, |
|||
Basic = 1 |
|||
NotSpecified = 0, |
|||
Basic = 1, |
|||
Lepton = 2, |
|||
LeptonXLite = 3, |
|||
LeptonX = 4 |
|||
} |
|||
@ -0,0 +1,8 @@ |
|||
namespace Volo.Abp.Cli.ProjectBuilding.Building; |
|||
public enum ThemeStyle : byte |
|||
{ |
|||
NotSpecified = 0, |
|||
Dim = 1, |
|||
Light = 2, |
|||
Dark = 3 |
|||
} |
|||
@ -0,0 +1,6 @@ |
|||
namespace Volo.Abp.Cli.Utils; |
|||
|
|||
public static class ExceptionMessageHelper |
|||
{ |
|||
public static string GetInvalidOptionExceptionMessage(string optionName) => $"The option you provided for {optionName} is invalid!"; |
|||
} |
|||
Loading…
Reference in new issue