From 375543c644e44104d385c33ab65d8c0d67a5ec74 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Mon, 19 Nov 2018 21:29:29 +0900 Subject: [PATCH] Add squirrel update log output Also updates squirrel to latest version. --- osu.Desktop/Updater/SquirrelUpdateManager.cs | 33 ++++++++++++++++++++ osu.Desktop/osu.Desktop.csproj | 2 +- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/osu.Desktop/Updater/SquirrelUpdateManager.cs b/osu.Desktop/Updater/SquirrelUpdateManager.cs index 1f8bff74f4..5215bf9e87 100644 --- a/osu.Desktop/Updater/SquirrelUpdateManager.cs +++ b/osu.Desktop/Updater/SquirrelUpdateManager.cs @@ -2,6 +2,8 @@ // Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE using System; +using System.IO; +using System.Reflection; using System.Threading.Tasks; using osu.Framework.Allocation; using osu.Framework.Graphics; @@ -15,6 +17,7 @@ using osu.Game.Overlays.Notifications; using OpenTK; using OpenTK.Graphics; using Squirrel; +using LogLevel = Splat.LogLevel; namespace osu.Desktop.Updater { @@ -35,7 +38,10 @@ namespace osu.Desktop.Updater notificationOverlay = notification; if (game.IsDeployedBuild) + { + Splat.Locator.CurrentMutable.Register(() => new SquirrelLogger(), typeof(Splat.ILogger)); Schedule(() => Task.Run(() => checkForUpdateAsync())); + } } private async void checkForUpdateAsync(bool useDeltaPatching = true, UpdateProgressNotification notification = null) @@ -93,6 +99,7 @@ namespace osu.Desktop.Updater { // we'll ignore this and retry later. can be triggered by no internet connection or thread abortion. } + finally { if (scheduleRetry) @@ -159,5 +166,31 @@ namespace osu.Desktop.Updater }); } } + + private class SquirrelLogger : Splat.ILogger, IDisposable + { + private readonly string path; + private readonly object locker = new object(); + public LogLevel Level { get; set; } = LogLevel.Info; + + public SquirrelLogger() + { + var file = Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), "SquirrelSetupUpdater.log"); + if (File.Exists(file)) File.Delete(file); + path = file; + } + + public void Write(string message, LogLevel logLevel) + { + if (logLevel < Level) + return; + + lock (locker) File.AppendAllText(path, message + "\r\n"); + } + + public void Dispose() + { + } + } } } diff --git a/osu.Desktop/osu.Desktop.csproj b/osu.Desktop/osu.Desktop.csproj index e1e59804e5..09bfdc67d4 100644 --- a/osu.Desktop/osu.Desktop.csproj +++ b/osu.Desktop/osu.Desktop.csproj @@ -27,7 +27,7 @@ - +