using System.Reflection;
using System.Text;

namespace SharpChat;

public static class SharpInfo {
    private const string NAME = @"SharpChat";
    private const string UNKNOWN = @"XXXXXXXXXX";

    public static string VersionString { get; }
    public static string VersionStringShort { get; }
    public static bool IsDebugBuild { get; }

    public static string ProgramName { get; }

    static SharpInfo() {
#if DEBUG
        IsDebugBuild = true;
#endif

        try {
            using Stream s = Assembly.GetEntryAssembly()!.GetManifestResourceStream(@"SharpChat.version.txt")!;
            using StreamReader sr = new(s);
            VersionString = sr.ReadLine()!.Trim();
            VersionStringShort = VersionString.Length > 10 ? VersionString[..10] : VersionString;
        } catch {
            VersionStringShort = VersionString = UNKNOWN;
        }

        StringBuilder sb = new();
        sb.Append(NAME);
        sb.Append('/');
        sb.Append(VersionStringShort);
        ProgramName = sb.ToString();
    }
}