feat: 完成2.0重构

This commit is contained in:
橙子
2024-11-05 22:22:42 +08:00
parent d83db53acb
commit a87d6345c2
3 changed files with 64 additions and 59 deletions

View File

@@ -14,10 +14,9 @@ namespace Yi.Abp.Tool.Commands
public string? Description { get; }
public void CommandLineApplication(CommandLineApplication application)
{
var modulePathOption= application.Option("-modulePath", "模块路径",CommandOptionType.SingleValue);
var modulePathOption= application.Option("-p|--modulePath", "模块路径",CommandOptionType.SingleValue);
var solutionOption= application.Option("-s|--solution", "解决方案路径",CommandOptionType.SingleValue);
var moduleNameArgument = application.Argument("moduleName", "模块名", null);
var moduleNameArgument = application.Argument("moduleName", "模块名", (_) => { });
application.OnExecute(() =>
{
var modulePath = "";
@@ -27,25 +26,25 @@ namespace Yi.Abp.Tool.Commands
{
modulePath = moduleName.ToLower().Replace(".", "-");
}
//解决方案默认在模块文件夹上一级也可以通过s进行指定
var slnPath = string.Empty;
if (!solutionOption.HasValue())
{
slnPath = "../";
}
CheckFirstSlnPath(slnPath);
var dotnetSlnCommandPart1 = $"dotnet sln \"{slnPath}\" add \"{modulePath}\\{moduleName}.";
var dotnetSlnCommandPart2 = new List<string>() { "Application", "Application.Contracts", "Domain", "Domain.Shared", "SqlSugarCore" };
var paths = dotnetSlnCommandPart2.Select(x => $@"{modulePath}\{moduleName}." + x).ToArray();
CheckPathExist(paths);
var cmdCommands = dotnetSlnCommandPart2.Select(x => dotnetSlnCommandPart1 + x+"\"").ToArray();
StartCmd(cmdCommands);
Console.WriteLine("恭喜~模块添加成功!");
return 0;
});

View File

@@ -26,65 +26,69 @@ namespace Yi.Abp.Tool.Commands
public void CommandLineApplication(CommandLineApplication application)
{
var templateTypeOption = application.Option("-t", "模板类型", CommandOptionType.SingleValue);
var csfOption = application.Option("csf", "是否创建解决方案", CommandOptionType.SingleValue);
var moduleNameArgument = application.Argument("moduleName", "模块名", null);
var templateTypeOption = application.Option("-t|--moduleType", "模板类型", CommandOptionType.SingleValue);
var csfOption = application.Option("-csf", "是否创建解决方案", CommandOptionType.SingleValue);
var moduleNameArgument = application.Argument("moduleName", "模块名", (_) => { });
#region
var id = Guid.NewGuid().ToString("N");
var zipPath = string.Empty;
byte[] fileByteArray;
var templateType = templateTypeOption.HasValue() ? templateTypeOption.Value() : "module";
if (templateType == "module")
application.OnExecute(() =>
{
//代表模块生成
fileByteArray = (_templateGenService.CreateModuleAsync(new TemplateGenCreateInputDto
#region
var id = Guid.NewGuid().ToString("N");
var zipPath = string.Empty;
byte[] fileByteArray;
var templateType = templateTypeOption.HasValue() ? templateTypeOption.Value() : "module";
if (templateType == "module")
{
Name = moduleNameArgument.Value,
}).Result);
}
else
{
//代表模块生成
fileByteArray = _templateGenService.CreateProjectAsync(new TemplateGenCreateInputDto
//代表模块生成
fileByteArray = (_templateGenService.CreateModuleAsync(new TemplateGenCreateInputDto
{
Name = moduleNameArgument.Value,
}).Result);
}
else
{
Name = moduleNameArgument.Value,
}).Result;
}
zipPath = $"{id}.zip";
File.WriteAllBytes(zipPath, fileByteArray);
#endregion
#region
//默认是当前目录
var unzipDirPath = "./";
//如果创建解决方案文件夹
if (csfOption.HasValue())
{
var moduleName = moduleNameArgument.Value.ToLower().Replace(".", "-");
if (Directory.Exists(moduleName))
{
throw new UserFriendlyException($"文件夹[{moduleName}]已存在,请删除后重试");
//代表模块生成
fileByteArray = _templateGenService.CreateProjectAsync(new TemplateGenCreateInputDto
{
Name = moduleNameArgument.Value,
}).Result;
}
Directory.CreateDirectory(moduleName);
unzipDirPath = moduleName;
}
zipPath = $"{id}.zip";
File.WriteAllBytes(zipPath, fileByteArray);
#endregion
#endregion
ZipFile.ExtractToDirectory(zipPath, unzipDirPath);
//创建压缩包后删除临时目录
File.Delete(zipPath);
#region
Console.WriteLine("恭喜~模块已生成!");
//默认是当前目录
var unzipDirPath = "./";
//如果创建解决方案文件夹
if (csfOption.HasValue())
{
var moduleName = moduleNameArgument.Value.ToLower().Replace(".", "-");
if (Directory.Exists(moduleName))
{
throw new UserFriendlyException($"文件夹[{moduleName}]已存在,请删除后重试");
}
Directory.CreateDirectory(moduleName);
unzipDirPath = moduleName;
}
#endregion
ZipFile.ExtractToDirectory(zipPath, unzipDirPath);
//创建压缩包后删除临时目录
File.Delete(zipPath);
Console.WriteLine("恭喜~模块已生成!");
return 0;
});
}
}
}

View File

@@ -20,11 +20,13 @@ class Program
// args = ["clear", "-path", "D:\\code\\csharp\\source\\Yi\\Yi.Abp.Net8\\src"];
//帮助
args = ["-h"];
//args = ["-h"];
//版本
// args = ["-v"];
//清理
// args = ["clear"];
//添加模块
args = ["add-module", "kkk"];
#endif
try
{