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();
        }
    }
}