From 8fdc9624e36b3f63f9eec90eb4b3a541ca5a7159 Mon Sep 17 00:00:00 2001 From: Timothy Baldridge Date: Thu, 1 Apr 2021 14:52:23 -0600 Subject: [PATCH] Fixes for root path WJ downloads --- CHANGELOG.md | 7 ++++ .../Compression.BSA.Test.csproj | 2 +- Wabbajack.App.Test/Wabbajack.App.Test.csproj | 2 +- Wabbajack.CLI/Wabbajack.CLI.csproj | 6 +-- .../Wabbajack.Common.Test.csproj | 2 +- Wabbajack.Common/Paths/AbsolutePath.cs | 10 ++++- Wabbajack.Common/Wabbajack.Common.csproj | 6 +-- Wabbajack.Launcher/Wabbajack.Launcher.csproj | 6 +-- Wabbajack.Lib/LauncherUpdater.cs | 2 +- Wabbajack.Lib/Wabbajack.Lib.csproj | 10 ++--- .../Wabbajack.Server.Test.csproj | 2 +- Wabbajack.Server/Wabbajack.Server.csproj | 6 +-- Wabbajack.Test/SanityTests.cs | 39 +++++++++++++++++++ Wabbajack.Test/Wabbajack.Test.csproj | 2 +- .../Wabbajack.VirtualFileSystem.Test.csproj | 2 +- Wabbajack/App.xaml.cs | 1 + Wabbajack/View Models/MainWindowVM.cs | 1 + Wabbajack/Wabbajack.csproj | 14 +++---- 18 files changed, 88 insertions(+), 32 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bcbcf071..368c5c6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ ### Changelog +#### Version - 2.4.3.2 - 4/1/2021 +* Fix for crashing when WJ is installed in the root drive +* Vortex is now the only option for WJ modlists, down with MO2, purge the xenos, praise to the Emperor +* Slightly more stable GoogleDrive link verification +* Updated several dependency libraries + + #### Version - 2.4.3.1 - 3/24/2021 * HOTFIX : Go back to the non-core version of CEF, .NET Core version was crashing * Folders prefixed with `[NoDelete]` in the name will be ignored when WJ cleans a installed modlist diff --git a/Compression.BSA.Test/Compression.BSA.Test.csproj b/Compression.BSA.Test/Compression.BSA.Test.csproj index dfbce2d0..bf913f51 100644 --- a/Compression.BSA.Test/Compression.BSA.Test.csproj +++ b/Compression.BSA.Test/Compression.BSA.Test.csproj @@ -8,7 +8,7 @@ - + diff --git a/Wabbajack.App.Test/Wabbajack.App.Test.csproj b/Wabbajack.App.Test/Wabbajack.App.Test.csproj index a34cbca8..acd5670e 100644 --- a/Wabbajack.App.Test/Wabbajack.App.Test.csproj +++ b/Wabbajack.App.Test/Wabbajack.App.Test.csproj @@ -7,7 +7,7 @@ - + diff --git a/Wabbajack.CLI/Wabbajack.CLI.csproj b/Wabbajack.CLI/Wabbajack.CLI.csproj index 143ba93f..eaa39b1e 100644 --- a/Wabbajack.CLI/Wabbajack.CLI.csproj +++ b/Wabbajack.CLI/Wabbajack.CLI.csproj @@ -6,8 +6,8 @@ wabbajack-cli Wabbajack x64 - 2.4.3.1 - 2.4.3.1 + 2.4.3.2 + 2.4.3.2 Copyright © 2019-2020 An automated ModList installer true @@ -19,7 +19,7 @@ - + diff --git a/Wabbajack.Common.Test/Wabbajack.Common.Test.csproj b/Wabbajack.Common.Test/Wabbajack.Common.Test.csproj index 66a25cc4..c67f2862 100644 --- a/Wabbajack.Common.Test/Wabbajack.Common.Test.csproj +++ b/Wabbajack.Common.Test/Wabbajack.Common.Test.csproj @@ -8,7 +8,7 @@ - + diff --git a/Wabbajack.Common/Paths/AbsolutePath.cs b/Wabbajack.Common/Paths/AbsolutePath.cs index 52d73590..74686425 100644 --- a/Wabbajack.Common/Paths/AbsolutePath.cs +++ b/Wabbajack.Common/Paths/AbsolutePath.cs @@ -48,7 +48,15 @@ namespace Wabbajack.Common public AbsolutePath(string path, bool skipValidation = false) { - _nullable_path = path.Replace("/", "\\").TrimEnd('\\'); + if (path.Length == 3 && path[1] == ':' && (path[2] == '\\' || path[2] == '/')) + { + _nullable_path = path.Substring(0, 2) + '\\'; + } + else + { + _nullable_path = path.Replace("/", "\\").TrimEnd('\\'); + } + if (!skipValidation) { ValidateAbsolutePath(); diff --git a/Wabbajack.Common/Wabbajack.Common.csproj b/Wabbajack.Common/Wabbajack.Common.csproj index 9a0d935b..0f195097 100644 --- a/Wabbajack.Common/Wabbajack.Common.csproj +++ b/Wabbajack.Common/Wabbajack.Common.csproj @@ -49,10 +49,10 @@ - + - + @@ -62,7 +62,7 @@ - + diff --git a/Wabbajack.Launcher/Wabbajack.Launcher.csproj b/Wabbajack.Launcher/Wabbajack.Launcher.csproj index 2941da2b..25b97d38 100644 --- a/Wabbajack.Launcher/Wabbajack.Launcher.csproj +++ b/Wabbajack.Launcher/Wabbajack.Launcher.csproj @@ -4,8 +4,8 @@ Exe net5.0-windows true - 2.4.3.1 - 2.4.3.1 + 2.4.3.2 + 2.4.3.2 Copyright © 2019-2020 Wabbajack Application Launcher true @@ -28,7 +28,7 @@ - + \ No newline at end of file diff --git a/Wabbajack.Lib/LauncherUpdater.cs b/Wabbajack.Lib/LauncherUpdater.cs index 7b890726..d3552281 100644 --- a/Wabbajack.Lib/LauncherUpdater.cs +++ b/Wabbajack.Lib/LauncherUpdater.cs @@ -73,7 +73,7 @@ namespace Wabbajack.Lib var launcherVersion = FileVersionInfo.GetVersionInfo(exePath.ToString()); - if (release != default && launcherVersion != null && release.version > Version.Parse(launcherVersion.FileVersion!)) + if (release != default && release.version > Version.Parse(launcherVersion.FileVersion!)) { Utils.Log($"Updating Launcher from {launcherVersion.FileVersion} to {release.version}"); var tempPath = launcherFolder.Combine("Wabbajack.exe.temp"); diff --git a/Wabbajack.Lib/Wabbajack.Lib.csproj b/Wabbajack.Lib/Wabbajack.Lib.csproj index db700ee8..fb79352d 100644 --- a/Wabbajack.Lib/Wabbajack.Lib.csproj +++ b/Wabbajack.Lib/Wabbajack.Lib.csproj @@ -17,7 +17,7 @@ 4.0.0 - 6.4.0 + 6.5.0 all runtime; build; native; contentfiles; analyzers; buildtransitive @@ -25,10 +25,10 @@ 2.2.2.1 - 1.11.31 + 1.11.32 - 1.8.2 + 1.9.0 4.7.0 @@ -37,10 +37,10 @@ 2.1.1 - 13.2.2 + 13.2.10 - 13.2.2 + 13.2.10 0.28.1 diff --git a/Wabbajack.Server.Test/Wabbajack.Server.Test.csproj b/Wabbajack.Server.Test/Wabbajack.Server.Test.csproj index 4f0f52fb..940e1f56 100644 --- a/Wabbajack.Server.Test/Wabbajack.Server.Test.csproj +++ b/Wabbajack.Server.Test/Wabbajack.Server.Test.csproj @@ -7,7 +7,7 @@ - + diff --git a/Wabbajack.Server/Wabbajack.Server.csproj b/Wabbajack.Server/Wabbajack.Server.csproj index 9d040eb7..2d714aa7 100644 --- a/Wabbajack.Server/Wabbajack.Server.csproj +++ b/Wabbajack.Server/Wabbajack.Server.csproj @@ -3,8 +3,8 @@ Exe net5.0-windows - 2.4.3.1 - 2.4.3.1 + 2.4.3.2 + 2.4.3.2 Copyright © 2019-2020 Wabbajack Server win-x64 @@ -16,7 +16,7 @@ - + diff --git a/Wabbajack.Test/SanityTests.cs b/Wabbajack.Test/SanityTests.cs index 5b4ebb34..aa05de24 100644 --- a/Wabbajack.Test/SanityTests.cs +++ b/Wabbajack.Test/SanityTests.cs @@ -42,6 +42,45 @@ namespace Wabbajack.Test await utils.VerifyInstalledFile(mod, @"Data\scripts\test.pex"); } + [Fact] + public async Task TestFilesAreRemappedDuringInstallation() + { + + var profile = utils.AddProfile(); + var mod = await utils.AddMod(); + var testPex = await utils.AddModFile(mod, @"Data\scripts\test.pex", 10); + + var src = @"Resources\test_ini01.ini".RelativeTo(AbsolutePath.EntryPoint); + + var srcIniData = await src.ReadAllTextAsync(); + var inMod = await utils.AddModFile(mod, "test.ini", 1); + await src.CopyToAsync(inMod); + + var inMO2Folder = utils.SourcePath.Combine("some_tool", "config.ini"); + inMO2Folder.Parent.CreateDirectory(); + await src.CopyToAsync(inMO2Folder); + + await utils.Configure(); + + await utils.AddManualDownload( + new Dictionary {{"/baz/biz.pex", await testPex.ReadAllBytesAsync()}}); + + await CompileAndInstall(profile); + + await utils.VerifyInstalledFile(mod, @"Data\scripts\test.pex"); + + var location = inMO2Folder.RelativeTo(utils.SourcePath).RelativeTo(utils.InstallPath); + Assert.True(location.Exists, "The file should be installed"); + var remappedData = await location.ReadAllTextAsync(); + Assert.NotEqual(srcIniData, remappedData); + + var location2 = inMod.RelativeTo(utils.SourcePath).RelativeTo(utils.InstallPath); + Assert.True(location.Exists, "The file should be installed"); + var remappedData2 = await location2.ReadAllTextAsync(); + Assert.NotEqual(srcIniData, remappedData2); + } + + [Fact] public async Task TestCacheFileAreIgnored() { diff --git a/Wabbajack.Test/Wabbajack.Test.csproj b/Wabbajack.Test/Wabbajack.Test.csproj index 1be50d6d..5d233d2a 100644 --- a/Wabbajack.Test/Wabbajack.Test.csproj +++ b/Wabbajack.Test/Wabbajack.Test.csproj @@ -30,7 +30,7 @@ - + diff --git a/Wabbajack.VirtualFileSystem.Test/Wabbajack.VirtualFileSystem.Test.csproj b/Wabbajack.VirtualFileSystem.Test/Wabbajack.VirtualFileSystem.Test.csproj index 8ffdc768..cd2d0a5e 100644 --- a/Wabbajack.VirtualFileSystem.Test/Wabbajack.VirtualFileSystem.Test.csproj +++ b/Wabbajack.VirtualFileSystem.Test/Wabbajack.VirtualFileSystem.Test.csproj @@ -8,7 +8,7 @@ - + diff --git a/Wabbajack/App.xaml.cs b/Wabbajack/App.xaml.cs index e0ac2e7a..2a11ecae 100644 --- a/Wabbajack/App.xaml.cs +++ b/Wabbajack/App.xaml.cs @@ -13,6 +13,7 @@ namespace Wabbajack public App() { Consts.LogsFolder = LauncherUpdater.CommonFolder.Value.Combine("logs"); + Consts.LogsFolder.CreateDirectory(); LoggingSettings.LogToFile = true; Utils.InitalizeLogging().Wait(); diff --git a/Wabbajack/View Models/MainWindowVM.cs b/Wabbajack/View Models/MainWindowVM.cs index 71f399c7..c7a33d22 100644 --- a/Wabbajack/View Models/MainWindowVM.cs +++ b/Wabbajack/View Models/MainWindowVM.cs @@ -125,6 +125,7 @@ namespace Wabbajack Utils.Log($"Wabbajack Version: {fvi.FileVersion}"); Task.Run(() => Metrics.Send("started_wabbajack", fvi.FileVersion)).FireAndForget(); + Task.Run(() => Metrics.Send("started_sha", ThisAssembly.Git.Sha)); } catch (Exception ex) { diff --git a/Wabbajack/Wabbajack.csproj b/Wabbajack/Wabbajack.csproj index 559e9b45..0f4ea1a1 100644 --- a/Wabbajack/Wabbajack.csproj +++ b/Wabbajack/Wabbajack.csproj @@ -6,8 +6,8 @@ true x64 win10-x64 - 2.4.3.1 - 2.4.3.1 + 2.4.3.2 + 2.4.3.2 Copyright © 2019-2020 An automated ModList installer true @@ -55,12 +55,12 @@ - + - + all runtime; build; native; contentfiles; analyzers; buildtransitive @@ -74,9 +74,9 @@ - - - + + +