This commit is contained in:
Ottermandias 2023-07-07 20:24:44 +02:00
parent 5c003d8cd4
commit f8e9cc8988
43 changed files with 2215 additions and 668 deletions

View file

@ -7,12 +7,22 @@ namespace Glamourer.Services;
public class BackupService
{
private readonly Logger _logger;
private readonly DirectoryInfo _configDirectory;
private readonly IReadOnlyList<FileInfo> _fileNames;
public BackupService(Logger logger, FilenameService fileNames)
{
var files = GlamourerFiles(fileNames);
Backup.CreateBackup(logger, new DirectoryInfo(fileNames.ConfigDirectory), files);
_logger = logger;
_fileNames = GlamourerFiles(fileNames);
_configDirectory = new DirectoryInfo(fileNames.ConfigDirectory);
Backup.CreateAutomaticBackup(logger, _configDirectory, _fileNames);
}
/// <summary> Create a permanent backup with a given name for migrations. </summary>
public void CreateMigrationBackup(string name)
=> Backup.CreatePermanentBackup(_logger, _configDirectory, _fileNames, name);
/// <summary> Collect all relevant files for glamourer configuration. </summary>
private static IReadOnlyList<FileInfo> GlamourerFiles(FilenameService fileNames)
{

View file

@ -10,14 +10,16 @@ public class ConfigMigrationService
{
private readonly SaveService _saveService;
private readonly FixedDesignMigrator _fixedDesignMigrator;
private readonly BackupService _backupService;
private Configuration _config = null!;
private JObject _data = null!;
public ConfigMigrationService(SaveService saveService, FixedDesignMigrator fixedDesignMigrator)
public ConfigMigrationService(SaveService saveService, FixedDesignMigrator fixedDesignMigrator, BackupService backupService)
{
_saveService = saveService;
_fixedDesignMigrator = fixedDesignMigrator;
_backupService = backupService;
}
public void Migrate(Configuration config)
@ -39,6 +41,7 @@ public class ConfigMigrationService
if (_config.Version > 1)
return;
_backupService.CreateMigrationBackup("pre_v1_to_v2_migration");
_fixedDesignMigrator.Migrate(_data["FixedDesigns"]);
_config.Version = 2;
var customizationColor = _data["CustomizationColor"]?.ToObject<uint>() ?? ColorId.CustomizationDesign.Data().DefaultColor;

View file

@ -18,6 +18,7 @@ using Glamourer.Unlocks;
using Microsoft.Extensions.DependencyInjection;
using OtterGui.Classes;
using OtterGui.Log;
using Penumbra.GameData.Data;
namespace Glamourer.Services;
@ -73,7 +74,8 @@ public static class ServiceManager
.AddSingleton<ItemService>()
.AddSingleton<ActorService>()
.AddSingleton<CustomizationService>()
.AddSingleton<ItemManager>();
.AddSingleton<ItemManager>()
.AddSingleton<HumanModelList>();
private static IServiceCollection AddInterop(this IServiceCollection services)
=> services.AddSingleton<VisorService>()
@ -93,7 +95,8 @@ public static class ServiceManager
.AddSingleton<DesignFileSystem>()
.AddSingleton<AutoDesignManager>()
.AddSingleton<AutoDesignApplier>()
.AddSingleton<FixedDesignMigrator>();
.AddSingleton<FixedDesignMigrator>()
.AddSingleton<DesignConverter>();
private static IServiceCollection AddState(this IServiceCollection services)
=> services.AddSingleton<StateManager>()
@ -114,6 +117,8 @@ public static class ServiceManager
.AddSingleton<DesignFileSystemSelector>()
.AddSingleton<DesignPanel>()
.AddSingleton<DesignTab>()
.AddSingleton<ModAssociationsTab>()
.AddSingleton<DesignDetailTab>()
.AddSingleton<UnlockTable>()
.AddSingleton<UnlockOverview>()
.AddSingleton<UnlocksTab>()