2021-11-17 08:36:23 -05:00
|
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
|
|
|
|
|
|
|
using System.IO;
|
|
|
|
|
|
using YamlDotNet.Serialization;
|
|
|
|
|
|
using YamlDotNet.Serialization.NamingConventions;
|
|
|
|
|
|
|
2022-10-12 06:36:30 -04:00
|
|
|
|
namespace Jupiter.Implementation
|
2021-11-17 08:36:23 -05:00
|
|
|
|
{
|
2023-07-27 11:20:47 -04:00
|
|
|
|
public interface IVersionFile
|
|
|
|
|
|
{
|
|
|
|
|
|
public string? VersionString { get; }
|
|
|
|
|
|
}
|
2021-11-17 08:36:23 -05:00
|
|
|
|
|
2023-07-27 11:20:47 -04:00
|
|
|
|
public class VersionFile : IVersionFile
|
|
|
|
|
|
{
|
|
|
|
|
|
private readonly VersionFileContents _versionFileContents;
|
2021-11-17 08:36:23 -05:00
|
|
|
|
|
2023-07-27 11:20:47 -04:00
|
|
|
|
private class VersionFileContents
|
|
|
|
|
|
{
|
|
|
|
|
|
public string? Version { get; set; }
|
|
|
|
|
|
}
|
2021-11-17 08:36:23 -05:00
|
|
|
|
|
2023-07-27 11:20:47 -04:00
|
|
|
|
public VersionFile()
|
|
|
|
|
|
{
|
|
|
|
|
|
FileInfo assemblyFile = new FileInfo(typeof(VersionFile).Assembly.Location);
|
|
|
|
|
|
FileInfo fi = new FileInfo( Path.Combine(assemblyFile!.Directory!.FullName, "version.yaml"));
|
|
|
|
|
|
IDeserializer deserializer = new DeserializerBuilder()
|
|
|
|
|
|
.WithNamingConvention(CamelCaseNamingConvention.Instance)
|
|
|
|
|
|
.Build();
|
2021-11-17 08:36:23 -05:00
|
|
|
|
|
2023-07-27 11:20:47 -04:00
|
|
|
|
using StreamReader tr = fi.OpenText();
|
|
|
|
|
|
_versionFileContents = deserializer.Deserialize<VersionFileContents>(tr);
|
|
|
|
|
|
}
|
2021-11-17 08:36:23 -05:00
|
|
|
|
|
2023-07-27 11:20:47 -04:00
|
|
|
|
public string? VersionString => _versionFileContents.Version;
|
|
|
|
|
|
}
|
2021-11-17 08:36:23 -05:00
|
|
|
|
}
|