Browse Source

Enhance `CleanCommand` to run 'dotnet clean' .

Resolve #23184
pull/23189/head
maliming 1 year ago
parent
commit
c32bd4b522
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 16
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/CleanCommand.cs

16
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/CleanCommand.cs

@ -6,6 +6,7 @@ using System.Threading.Tasks;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Logging.Abstractions;
using Volo.Abp.Cli.Args; using Volo.Abp.Cli.Args;
using Volo.Abp.Cli.Utils;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
namespace Volo.Abp.Cli.Commands; namespace Volo.Abp.Cli.Commands;
@ -13,11 +14,14 @@ namespace Volo.Abp.Cli.Commands;
public class CleanCommand : IConsoleCommand, ITransientDependency public class CleanCommand : IConsoleCommand, ITransientDependency
{ {
public const string Name = "clean"; public const string Name = "clean";
public ILogger<CleanCommand> Logger { get; set; } public ILogger<CleanCommand> Logger { get; set; }
public CleanCommand() protected ICmdHelper CmdHelper { get; }
public CleanCommand(ICmdHelper cmdHelper)
{ {
CmdHelper = cmdHelper;
Logger = NullLogger<CleanCommand>.Instance; Logger = NullLogger<CleanCommand>.Instance;
} }
@ -26,6 +30,10 @@ public class CleanCommand : IConsoleCommand, ITransientDependency
var binEntries = Directory.EnumerateDirectories(Directory.GetCurrentDirectory(), "bin", SearchOption.AllDirectories); var binEntries = Directory.EnumerateDirectories(Directory.GetCurrentDirectory(), "bin", SearchOption.AllDirectories);
var objEntries = Directory.EnumerateDirectories(Directory.GetCurrentDirectory(), "obj", SearchOption.AllDirectories); var objEntries = Directory.EnumerateDirectories(Directory.GetCurrentDirectory(), "obj", SearchOption.AllDirectories);
Logger.LogInformation("Cleaning the solution with 'dotnet clean' command...");
CmdHelper.RunCmd($"dotnet clean", workingDirectory: Directory.GetCurrentDirectory());
Logger.LogInformation($"Removing 'bin' and 'obj' folders...");
foreach (var path in binEntries.Concat(objEntries)) foreach (var path in binEntries.Concat(objEntries))
{ {
if (path.IndexOf("node_modules", StringComparison.OrdinalIgnoreCase) > 0) if (path.IndexOf("node_modules", StringComparison.OrdinalIgnoreCase) > 0)
@ -38,9 +46,9 @@ public class CleanCommand : IConsoleCommand, ITransientDependency
Directory.Delete(path, true); Directory.Delete(path, true);
} }
} }
Logger.LogInformation($"'bin' and 'obj' folders removed successfully!");
Logger.LogInformation($"BIN and OBJ folders have been successfully deleted!"); Logger.LogInformation("Solution cleaned successfully!");
return Task.CompletedTask; return Task.CompletedTask;
} }

Loading…
Cancel
Save