Browse Source

feat(cli): update labp cli

pull/527/head
cKey 4 years ago
parent
commit
e9051e3d97
  1. 8
      README.en.md
  2. 8
      README.md
  3. 2
      aspnet-core/modules/cli/LINGYUN.Abp.Cli/LINGYUN.Abp.Cli.csproj
  4. 89
      aspnet-core/modules/cli/LINGYUN.Abp.Cli/LINGYUN/Abp/Cli/Commands/LocalFileCreateProjectService.cs

8
README.en.md

@ -11,13 +11,13 @@ This is a [vue-vben-admin](https://github.com/anncwb/vue-vben-admin) -based Abp
### 1、Install cli
```shell
dotnet tool install --global LINGYUN.Abp.Cli --version 5.1.1
dotnet tool install --global LINGYUN.Abp.Cli --version 5.1.4
```
### 2、Install .NET Template
```shell
dotnet new --install LINGYUN.Abp.MicroService.Templates::5.1.1
dotnet new --install LINGYUN.Abp.MicroService.Templates::5.1.4
```
### 3、Use cli create new project
@ -43,6 +43,10 @@ This is a [vue-vben-admin](https://github.com/anncwb/vue-vben-admin) -based Abp
```
### Feedback
* The author is not a freelancer and does not have much time to maintain the project. If there is a problem, please contact **colin.in@foxmail.com** by email
## Screenshots
![Logging](./apps/vue/images/logging.png)

8
README.md

@ -13,13 +13,13 @@
### 1、安装dotnet工具
```shell
dotnet tool install --global LINGYUN.Abp.Cli --version 5.1.1
dotnet tool install --global LINGYUN.Abp.Cli --version 5.1.4
```
### 2、安装.NET模板
```shell
dotnet new --install LINGYUN.Abp.MicroService.Templates::5.1.1
dotnet new --install LINGYUN.Abp.MicroService.Templates::5.1.4
```
### 3、使用cli创建一个项目
@ -45,6 +45,10 @@
```
### 问题反馈
* 作者不是自由职业者,并没有那么多时间维护项目,如果出现问题,可以邮件联系 **colin.in@foxmail.com**,也可以加入QQ群聊: 795966922
## 截图
![系统日志](./apps/vue/images/logging.png)

2
aspnet-core/modules/cli/LINGYUN.Abp.Cli/LINGYUN.Abp.Cli.csproj

@ -5,7 +5,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<Version>5.1.1</Version>
<Version>5.1.4</Version>
<Copyright>colin</Copyright>
<Description>Use LINGYUN.MicroService.Templates command line</Description>
<PackAsTool>true</PackAsTool>

89
aspnet-core/modules/cli/LINGYUN.Abp.Cli/LINGYUN/Abp/Cli/Commands/LocalFileCreateProjectService.cs

@ -49,10 +49,20 @@ namespace LINGYUN.Abp.Cli.Commands
{
Logger.LogInformation("Execute dotnet command...");
var dbm = createArgs.DatabaseManagementSystem switch
{
DatabaseManagementSystem.SQLite => "Sqlite",
DatabaseManagementSystem.Oracle => "Oracle",
DatabaseManagementSystem.OracleDevart => "OracleDevart",
DatabaseManagementSystem.PostgreSQL => "PostgreSql",
DatabaseManagementSystem.SQLServer => "SqlServer",
_ => "MySQL",
};
var commandBuilder = new StringBuilder("dotnet new");
commandBuilder.AppendFormat(" {0}", createArgs.TemplateName);
commandBuilder.AppendFormat(" -n {0}", createArgs.SolutionName.ProjectName);
commandBuilder.AppendFormat(" -o {0}", createArgs.OutputFolder);
commandBuilder.AppendFormat(" --DatabaseManagement {0}", dbm);
var cmdError = CmdHelper.RunCmdAndGetOutput(commandBuilder.ToString(), out bool isSuccessful);
if (!isSuccessful)
@ -82,8 +92,7 @@ namespace LINGYUN.Abp.Cli.Commands
createArgs.PackageName,
createArgs.SolutionName.CompanyName,
createArgs.SolutionName.ProjectName,
createArgs.ConnectionString,
createArgs.DatabaseManagementSystem);
createArgs.ConnectionString);
Logger.LogInformation("Rewrite application url.");
await TryReplaceApplicationUrlWithProjectFile(
@ -100,8 +109,7 @@ namespace LINGYUN.Abp.Cli.Commands
await TryReplacePackageAndCompanyNameWithProjectFolder(
projectFiles,
createArgs.PackageName,
createArgs.SolutionName.CompanyName,
createArgs.DatabaseManagementSystem);
createArgs.SolutionName.CompanyName);
Logger.LogInformation($"'{createArgs.SolutionName.ProjectName}' has been successfully created to '{createArgs.OutputFolder}'");
}
@ -179,8 +187,7 @@ namespace LINGYUN.Abp.Cli.Commands
string packageName,
string companyName,
string projectName,
string connectionString = null,
DatabaseManagementSystem database = DatabaseManagementSystem.NotSpecified)
string connectionString = null)
{
var canReplaceFiles = projectFiles.Where(f => !f.IsFolder && f.Name.Contains("appsettings"));
foreach (var projectFile in canReplaceFiles)
@ -191,25 +198,6 @@ namespace LINGYUN.Abp.Cli.Commands
var defaultConnectionString = $"Server=127.0.0.1;Database={projectName};User Id=root;Password=123456";
connectionString ??= defaultConnectionString;
await ReplaceFileTextAsync(projectFile, defaultConnectionString, connectionString);
switch (database)
{
case DatabaseManagementSystem.SQLServer:
await ReplaceFileTextAsync(projectFile, "MySQL", "SqlServer");
break;
case DatabaseManagementSystem.SQLite:
await ReplaceFileTextAsync(projectFile, "MySQL", "Sqlite");
break;
case DatabaseManagementSystem.Oracle:
await ReplaceFileTextAsync(projectFile, "MySQL", "Oracle");
break;
case DatabaseManagementSystem.OracleDevart:
await ReplaceFileTextAsync(projectFile, "MySQL", "Oracle.Devart");
break;
case DatabaseManagementSystem.PostgreSQL:
await ReplaceFileTextAsync(projectFile, "MySQL", "PostgreSql");
break;
}
}
}
@ -224,44 +212,13 @@ namespace LINGYUN.Abp.Cli.Commands
{
await ReplaceFileTextAsync(projectFile, "PackageName", packageName);
await ReplaceFileTextAsync(projectFile, "CompanyName", companyName);
if (database != DatabaseManagementSystem.NotSpecified &&
database != DatabaseManagementSystem.MySQL &&
projectFile.Name.EndsWith("MigrationsDbContextFactory.cs"))
{
await ReplaceFileTextAsync(
projectFile,
// 非 MySql 替换一下这一句
"connectionString, ServerVersion.AutoDetect(connectionString)",
"connectionString");
}
// DB 驱动
switch (database)
{
case DatabaseManagementSystem.SQLServer:
await ReplaceFileTextAsync(projectFile, "MySQL", "SqlServer");
break;
case DatabaseManagementSystem.SQLite:
await ReplaceFileTextAsync(projectFile, "MySQL", "Sqlite");
break;
case DatabaseManagementSystem.Oracle:
await ReplaceFileTextAsync(projectFile, "MySQL", "Oracle");
break;
case DatabaseManagementSystem.OracleDevart:
await ReplaceFileTextAsync(projectFile, "MySQL", "Oracle.Devart");
break;
case DatabaseManagementSystem.PostgreSQL:
await ReplaceFileTextAsync(projectFile, "MySQL", "PostgreSql");
break;
}
}
}
protected virtual Task TryReplacePackageAndCompanyNameWithProjectFolder(
List<FindFile> projectFiles,
string packageName,
string companyName,
DatabaseManagementSystem database = DatabaseManagementSystem.NotSpecified)
string companyName)
{
var canReplaceFiles = projectFiles
.OrderByDescending(f => f.Depth)
@ -269,24 +226,6 @@ namespace LINGYUN.Abp.Cli.Commands
foreach (var projectFile in canReplaceFiles)
{
var replaceFileName = projectFile.Name.Replace("PackageName", packageName).Replace("CompanyName", companyName);
switch (database)
{
case DatabaseManagementSystem.SQLServer:
replaceFileName = replaceFileName.Replace("MySQL", "SqlServer", StringComparison.InvariantCultureIgnoreCase);
break;
case DatabaseManagementSystem.SQLite:
replaceFileName = replaceFileName.Replace("MySQL", "Sqlite", StringComparison.InvariantCultureIgnoreCase);
break;
case DatabaseManagementSystem.Oracle:
replaceFileName = replaceFileName.Replace("MySQL", "Oracle", StringComparison.InvariantCultureIgnoreCase);
break;
case DatabaseManagementSystem.OracleDevart:
replaceFileName = replaceFileName.Replace("MySQL", "Oracle.Devart", StringComparison.InvariantCultureIgnoreCase);
break;
case DatabaseManagementSystem.PostgreSQL:
replaceFileName = replaceFileName.Replace("MySQL", "PostgreSQL", StringComparison.InvariantCultureIgnoreCase);
break;
}
if (File.Exists(projectFile.Name))
{

Loading…
Cancel
Save