diff --git a/src/Recyclarr.Cli/CompositionRoot.cs b/src/Recyclarr.Cli/CompositionRoot.cs index dfc6e520..b5c0aecd 100644 --- a/src/Recyclarr.Cli/CompositionRoot.cs +++ b/src/Recyclarr.Cli/CompositionRoot.cs @@ -96,7 +96,6 @@ public static class CompositionRoot private static void CommandRegistrations(ContainerBuilder builder) { builder.RegisterTypes( - typeof(AppPathSetupTask), typeof(JanitorCleanupTask)) .As() .OrderByRegistration(); diff --git a/src/Recyclarr.Cli/Console/Setup/AppPathSetupTask.cs b/src/Recyclarr.Cli/Console/Setup/AppPathSetupTask.cs deleted file mode 100644 index cdd70bb5..00000000 --- a/src/Recyclarr.Cli/Console/Setup/AppPathSetupTask.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Recyclarr.Platform; - -namespace Recyclarr.Cli.Console.Setup; - -public class AppPathSetupTask(ILogger log, IAppPaths paths) : IBaseCommandSetupTask -{ - public void OnStart() - { - log.Debug("App Data Dir: {AppData}", paths.AppDataDirectory); - - // Initialize other directories used throughout the application - // Do not initialize the repo directory here; the GitRepositoryFactory handles that later. - paths.CacheDirectory.Create(); - paths.LogDirectory.Create(); - paths.ConfigsDirectory.Create(); - paths.IncludesDirectory.Create(); - } - - public void OnFinish() - { - // No work to do for this event - } -} diff --git a/src/Recyclarr.Platform/DefaultAppDataSetup.cs b/src/Recyclarr.Platform/DefaultAppDataSetup.cs index 733929fd..ac4ab890 100644 --- a/src/Recyclarr.Platform/DefaultAppDataSetup.cs +++ b/src/Recyclarr.Platform/DefaultAppDataSetup.cs @@ -1,13 +1,25 @@ using System.IO.Abstractions; +using Serilog; namespace Recyclarr.Platform; -public class DefaultAppDataSetup(IEnvironment env, IFileSystem fs) +public class DefaultAppDataSetup(ILogger log, IEnvironment env, IFileSystem fs) { public IAppPaths CreateAppPaths(string? appDataDirectoryOverride = null) { var appDir = GetAppDataDirectory(appDataDirectoryOverride); - return new AppPaths(fs.DirectoryInfo.New(appDir)); + var paths = new AppPaths(fs.DirectoryInfo.New(appDir)); + + log.Debug("App Data Dir: {AppData}", paths.AppDataDirectory); + + // Initialize other directories used throughout the application + // Do not initialize the repo directory here; the GitRepositoryFactory handles that later. + paths.CacheDirectory.Create(); + paths.LogDirectory.Create(); + paths.ConfigsDirectory.Create(); + paths.IncludesDirectory.Create(); + + return paths; } private string GetAppDataDirectory(string? appDataDirectoryOverride) diff --git a/tests/Recyclarr.Cli.IntegrationTests/BaseCommandSetupIntegrationTest.cs b/tests/Recyclarr.Cli.IntegrationTests/BaseCommandSetupIntegrationTest.cs index 418f66b6..4bfb69ab 100644 --- a/tests/Recyclarr.Cli.IntegrationTests/BaseCommandSetupIntegrationTest.cs +++ b/tests/Recyclarr.Cli.IntegrationTests/BaseCommandSetupIntegrationTest.cs @@ -1,7 +1,6 @@ using System.IO.Abstractions; using Recyclarr.Cli.Console.Setup; using Recyclarr.Settings; -using Recyclarr.TestLibrary; namespace Recyclarr.Cli.IntegrationTests; @@ -14,8 +13,7 @@ internal class BaseCommandSetupIntegrationTest : CliIntegrationFixture var registrations = Resolve>(); registrations.Select(x => x.GetType()).Should().BeEquivalentTo(new[] { - typeof(JanitorCleanupTask), - typeof(AppPathSetupTask) + typeof(JanitorCleanupTask) }); } @@ -60,26 +58,4 @@ internal class BaseCommandSetupIntegrationTest : CliIntegrationFixture Fs.AllFiles.Where(x => x.StartsWith(Paths.LogDirectory.FullName)) .Should().HaveCount(maxFiles); } - - [Test] - public void App_paths_setup_creates_initial_directories() - { - for (var i = 0; i < 50; ++i) - { - Fs.AddFile(Paths.LogDirectory.File($"logfile-{i}.log").FullName, new MockFileData("")); - } - - var sut = Resolve(); - sut.OnStart(); - - var expectedDirs = new[] - { - Paths.CacheDirectory.FullName, - Paths.LogDirectory.FullName, - Paths.ConfigsDirectory.FullName, - Paths.IncludesDirectory.FullName - }; - - Fs.LeafDirectories().Should().BeEquivalentTo(expectedDirs); - } }