diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4240f05e..0484c090 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
### Changelog
+#### Version - 2.1.0.2 - 7/7/2020
+* Don't scan the game folder during compilation. If you are compiling and want `Game Folder Files` create it in your MO2 folder and manually place files into it
+* Don't throw a hard error on a post-patch hash failure.
+* Don't save the VFS cache to disk or load it during compilation. We have other caches that make this mostly worthless
+
#### Version - 2.1.0.1 - 7/6/2020
* Don't include saves in .wabbajack files
* Don't delete saves from any MO2 profile during installation
diff --git a/Wabbajack.CLI/Wabbajack.CLI.csproj b/Wabbajack.CLI/Wabbajack.CLI.csproj
index cd4b5554..52bcf6ec 100644
--- a/Wabbajack.CLI/Wabbajack.CLI.csproj
+++ b/Wabbajack.CLI/Wabbajack.CLI.csproj
@@ -6,8 +6,8 @@
wabbajack-cli
Wabbajack
x64
- 2.1.0.1
- 2.1.0.1
+ 2.1.0.2
+ 2.1.0.2
Copyright © 2019-2020
An automated ModList installer
true
diff --git a/Wabbajack.Launcher/Wabbajack.Launcher.csproj b/Wabbajack.Launcher/Wabbajack.Launcher.csproj
index 662f1e8f..424030f9 100644
--- a/Wabbajack.Launcher/Wabbajack.Launcher.csproj
+++ b/Wabbajack.Launcher/Wabbajack.Launcher.csproj
@@ -4,8 +4,8 @@
WinExe
netcoreapp3.1
true
- 2.1.0.1
- 2.1.0.1
+ 2.1.0.2
+ 2.1.0.2
Copyright © 2019-2020
Wabbajack Application Launcher
true
diff --git a/Wabbajack.Lib/AInstaller.cs b/Wabbajack.Lib/AInstaller.cs
index d7107480..9c596c87 100644
--- a/Wabbajack.Lib/AInstaller.cs
+++ b/Wabbajack.Lib/AInstaller.cs
@@ -221,7 +221,9 @@ namespace Wabbajack.Lib
Status($"Verifying Patch {toPatch.To.FileName}");
hash = await toFile.FileHashAsync();
if (hash != toPatch.Hash)
- throw new InvalidDataException($"Invalid Hash for {toPatch.To} after patching");
+ {
+ Utils.Log($"NOTE: Invalid Hash for {toPatch.To} after patching {hash} vs {toPatch.Hash}");
+ }
});
}
diff --git a/Wabbajack.Lib/Data.cs b/Wabbajack.Lib/Data.cs
index b3a26413..c5552621 100644
--- a/Wabbajack.Lib/Data.cs
+++ b/Wabbajack.Lib/Data.cs
@@ -39,7 +39,7 @@ namespace Wabbajack.Lib
{
var v = new T();
v.To = Path;
- v.Hash = Hash;
+ v.Hash = File.Hash;
v.Size = File.Size;
return v;
}
diff --git a/Wabbajack.Lib/MO2Compiler.cs b/Wabbajack.Lib/MO2Compiler.cs
index b18f16ba..f54ce672 100644
--- a/Wabbajack.Lib/MO2Compiler.cs
+++ b/Wabbajack.Lib/MO2Compiler.cs
@@ -104,9 +104,6 @@ namespace Wabbajack.Lib
if (cancel.IsCancellationRequested) return false;
- if (VFSCacheName.Exists)
- await VFS.IntegrateFromFile(VFSCacheName);
-
List roots;
if (UseGamePaths)
{
@@ -138,7 +135,6 @@ namespace Wabbajack.Lib
if (cancel.IsCancellationRequested) return false;
await VFS.AddRoots(roots);
- await VFS.WriteToFile(VFSCacheName);
if (lootPath.Exists)
{
@@ -183,8 +179,7 @@ namespace Wabbajack.Lib
if (cancel.IsCancellationRequested) return false;
UpdateTracker.NextStep("Reindexing downloads after meta inferring");
await VFS.AddRoot(MO2DownloadsFolder);
- await VFS.WriteToFile(VFSCacheName);
-
+
if (cancel.IsCancellationRequested) return false;
UpdateTracker.NextStep("Pre-validating Archives");
@@ -246,27 +241,12 @@ namespace Wabbajack.Lib
});
// If Game Folder Files exists, ignore the game folder
- IEnumerable gameFiles;
- if (!MO2Folder.Combine(Consts.GameFolderFilesDir).Exists)
- {
- gameFiles = GamePath.EnumerateFiles()
- .Where(p => p.IsFile)
- .Where(p => p.Extension!= Consts.HashFileExtension)
- .Select(p => new RawSourceFile(VFS.Index.ByRootPath[p],
- Consts.GameFolderFilesDir.Combine(p.RelativeTo(GamePath))));
- }
- else
- {
- gameFiles = new List();
- }
-
-
IndexedFiles = IndexedArchives.SelectMany(f => f.File.ThisAndAllChildren)
.OrderBy(f => f.NestingFactor)
.GroupBy(f => f.Hash)
.ToDictionary(f => f.Key, f => f.AsEnumerable());
- AllFiles.SetTo(mo2Files.Concat(gameFiles)
+ AllFiles.SetTo(mo2Files
.Concat(lootFiles)
.DistinctBy(f => f.Path));
diff --git a/Wabbajack.Server/Controllers/Metrics.cs b/Wabbajack.Server/Controllers/Metrics.cs
index f7f03b2d..e371e078 100644
--- a/Wabbajack.Server/Controllers/Metrics.cs
+++ b/Wabbajack.Server/Controllers/Metrics.cs
@@ -54,27 +54,30 @@ namespace Wabbajack.BuildServer.Controllers
}
[HttpGet]
- [Route("badge/{name}/badge.json")]
- public async Task MetricsGitHubBadge(string name)
+ [Route("badge/{name}/total_installs_badge.json")]
+ public async Task TotalInstallsBadge(string name)
{
- var results = (await _sql.MetricsReport("finish_install"))
- .GroupBy(m => m.Subject)
- .Select(g => new MetricResult
- {
- SeriesName = g.Key,
- Labels = g.Select(m => m.Date.ToString(CultureInfo.InvariantCulture)).ToList(),
- Values = g.Select(m => m.Count).ToList()
- }).ToList();
+ var results = await _sql.TotalInstalls(name);
+
+ Response.ContentType = "application/json";
+
+ return Ok(results == 0
+ ? new Badge($"Modlist {name} not found!", "Error") {color = "red"}
+ : new Badge("Installations: ", $"{results}") {color = "green"});
+ }
+
+ [HttpGet]
+ [Route("badge/{name}/unique_installs_badge.json")]
+ public async Task UniqueInstallsBadge(string name)
+ {
+ var results = await _sql.UniqueInstalls(name);
Response.ContentType = "application/json";
- var modlist =
- results.FirstOrDefault(x => x.SeriesName.Equals(name, StringComparison.InvariantCultureIgnoreCase));
-
- return Ok(modlist == null
- ? new Badge($"Modlist {name} not found!", "Error") {color = "red"}.ToJson()
- : new Badge("Installations: ", $"{modlist.Values.Aggregate((x, y) => x + y)}").ToJson());
- }
+ return Ok(results == 0
+ ? new Badge($"Modlist {name} not found!", "Error") {color = "red"}
+ : new Badge("Installations: ", $"{results}"){color = "green"}) ;
+ }
private static readonly Func