forked from astenlund/fs2ff
-
Notifications
You must be signed in to change notification settings - Fork 0
/
UpdateChecker.cs
31 lines (28 loc) · 1.03 KB
/
UpdateChecker.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using System;
using System.Net.Http;
using System.Threading.Tasks;
namespace fs2ff
{
public static class UpdateChecker
{
public static async Task<UpdateInformation?> Check()
{
try
{
using var handler = new HttpClientHandler { AllowAutoRedirect = false };
using var client = new HttpClient(handler);
var response = await client.GetAsync(new Uri("https://github.com/astenlund/fs2ff/releases/latest")).ConfigureAwait(false);
var location = response.Headers.Location;
var versionStr = location?.Segments[^1];
return (Version.TryParse(versionStr?.TrimStart('v'), out var version) && version > App.AssemblyVersion)
? new UpdateInformation(version, location!)
: null;
}
catch (Exception e)
{
await Console.Error.WriteLineAsync("Exception caught: " + e);
return default;
}
}
}
}