diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs index 7b249f05175..d900c78c6c4 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs @@ -1,4 +1,4 @@ -using System.Text; +using System.Text; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.Cli.Commands; using Volo.Abp.Cli.Commands.Internal; @@ -67,6 +67,7 @@ public override void ConfigureServices(ServiceConfigurationContext context) options.Commands[CreateMigrationAndRunMigratorCommand.Name] = typeof(CreateMigrationAndRunMigratorCommand); options.Commands[InstallLibsCommand.Name] = typeof(InstallLibsCommand); options.Commands[CleanCommand.Name] = typeof(CleanCommand); + options.Commands[CleanLogsCommand.Name] = typeof(CleanLogsCommand); options.Commands[CliCommand.Name] = typeof(CliCommand); options.Commands[ClearDownloadCacheCommand.Name] = typeof(ClearDownloadCacheCommand); options.Commands[RecreateInitialMigrationCommand.Name] = typeof(RecreateInitialMigrationCommand); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/CleanLogsCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/CleanLogsCommand.cs new file mode 100644 index 00000000000..f43ac96f9e1 --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/CleanLogsCommand.cs @@ -0,0 +1,59 @@ +using System.IO; +using System.Text; +using System.Threading.Tasks; +using Microsoft.Extensions.Logging; +using Volo.Abp.Cli.Args; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.Cli.Commands; + +public class CleanLogsCommand : IConsoleCommand, ITransientDependency +{ + public const string Name = "clean-logs"; + + public ILogger Logger { get; set; } + + public CleanLogsCommand(ILogger logger) + { + Logger = logger; + } + + public Task ExecuteAsync(CommandLineArgs commandLineArgs) + { + var logsEntries = Directory.EnumerateDirectories(Directory.GetCurrentDirectory(), "Logs", SearchOption.AllDirectories); + + Logger.LogInformation($"Removing 'Logs' files..."); + foreach (var path in logsEntries) + { + var files = Directory.GetFiles(path, "*logs.txt"); + + foreach (var file in files) + { + Logger.LogInformation($"Deleting: {file}"); + File.Delete(file); + } + } + Logger.LogInformation($"'Logs' files removed successfully!"); + + Logger.LogInformation("Logs cleaned successfully!"); + return Task.CompletedTask; + } + + public string GetUsageInfo() + { + var sb = new StringBuilder(); + + sb.AppendLine(""); + sb.AppendLine("Usage:"); + sb.AppendLine(" abp clean-logs"); + sb.AppendLine(""); + sb.AppendLine("See the documentation for more info: https://abp.io/docs/latest/cli"); + + return sb.ToString(); + } + + public static string GetShortDescription() + { + return "Delete all *logs.txt files in current folder."; + } +} \ No newline at end of file