Files
ArchiSteamFarm/ArchiSteamFarm/SharedInfo.cs
Sebastian Göls 4cf66478cb Feature handle ipc config changes (#1349)
* Handle changes to IPC.config

* Only restart ArchiKestrel instead of ASF as a whole

* Fix autocomplete mistake https://www.youtube.com/watch?v=s1BDBT9LQJg

* Rename methods as requested and Handle multiple write events correctly

* Revert requested changes
2019-08-01 21:12:48 +02:00

112 lines
5.4 KiB
C#

// _ _ _ ____ _ _____
// / \ _ __ ___ | |__ (_)/ ___| | |_ ___ __ _ _ __ ___ | ___|__ _ _ __ _ __ ___
// / _ \ | '__|/ __|| '_ \ | |\___ \ | __|/ _ \ / _` || '_ ` _ \ | |_ / _` || '__|| '_ ` _ \
// / ___ \ | | | (__ | | | || | ___) || |_| __/| (_| || | | | | || _|| (_| || | | | | | | |
// /_/ \_\|_| \___||_| |_||_||____/ \__|\___| \__,_||_| |_| |_||_| \__,_||_| |_| |_| |_|
// |
// Copyright 2015-2019 Łukasz "JustArchi" Domeradzki
// Contact: JustArchi@JustArchi.net
// |
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// |
// http://www.apache.org/licenses/LICENSE-2.0
// |
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
using System;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Reflection;
using ArchiSteamFarm.Plugins;
using JetBrains.Annotations;
namespace ArchiSteamFarm {
internal static class SharedInfo {
internal const ulong ArchiSteamID = 76561198006963719;
internal const string ArchivalLogFile = "log.{#}.txt";
internal const string ArchivalLogsDirectory = "logs";
internal const string ASF = nameof(ASF);
internal const ulong ASFGroupSteamID = 103582791440160998;
internal const string AssemblyDocumentation = AssemblyName + ".xml";
internal const string AssemblyName = nameof(ArchiSteamFarm);
internal const string ConfigDirectory = "config";
internal const string ConfigExtension = ".json";
internal const string DatabaseExtension = ".db";
internal const string DebugDirectory = "debug";
internal const string EnvironmentVariableCryptKey = ASF + "_CRYPTKEY";
internal const string EnvironmentVariablePath = ASF + "_PATH";
internal const string GithubReleaseURL = "https://api.github.com/repos/" + GithubRepo + "/releases"; // GitHub API is HTTPS only
internal const string GithubRepo = "JustArchiNET/" + AssemblyName;
internal const string GlobalConfigFileName = ASF + ConfigExtension;
internal const string GlobalDatabaseFileName = ASF + DatabaseExtension;
internal const string IPCConfigExtension = ".config";
internal const string IPCConfigFile = nameof(IPC) + IPCConfigExtension;
internal const string KeysExtension = ".keys";
internal const string KeysUnusedExtension = ".unused";
internal const string KeysUsedExtension = ".used";
internal const string LicenseName = "Apache 2.0";
internal const string LicenseURL = "http://www.apache.org/licenses/LICENSE-2.0";
internal const string LogFile = "log.txt";
internal const string MobileAuthenticatorExtension = ".maFile";
internal const string PluginsDirectory = "plugins";
internal const string ProjectURL = "https://github.com/" + GithubRepo;
internal const string SentryHashExtension = ".bin";
internal const string StatisticsServer = "asf.justarchi.net";
internal const string UlongCompatibilityStringPrefix = "s_";
internal const string UpdateDirectory = "_old";
internal const string WebsiteDirectory = "www";
internal static string HomeDirectory => Path.GetDirectoryName(Assembly.GetEntryAssembly()?.Location ?? throw new ArgumentNullException(nameof(HomeDirectory)));
[NotNull]
internal static string ProgramIdentifier => PublicIdentifier + " V" + Version + " (" + BuildInfo.Variant + "/" + ModuleVersion + " | " + OS.Variant + ")";
[NotNull]
internal static string PublicIdentifier => AssemblyName + (BuildInfo.IsCustomBuild ? "-custom" : PluginsCore.HasActivePluginsLoaded ? "-modded" : "");
[NotNull]
internal static Version Version => Assembly.GetEntryAssembly()?.GetName().Version ?? throw new ArgumentNullException(nameof(Version));
private static Guid ModuleVersion => Assembly.GetEntryAssembly()?.ManifestModule.ModuleVersionId ?? throw new ArgumentNullException(nameof(ModuleVersion));
[SuppressMessage("ReSharper", "ConvertToConstant.Global")]
internal static class BuildInfo {
#if ASF_VARIANT_DOCKER
internal static readonly bool CanUpdate = false;
internal static readonly string Variant = "docker";
#elif ASF_VARIANT_GENERIC
internal static readonly bool CanUpdate = true;
internal static readonly string Variant = "generic";
#elif ASF_VARIANT_GENERIC_NETF
internal static readonly bool CanUpdate = true;
internal static readonly string Variant = "generic-netf";
#elif ASF_VARIANT_LINUX_ARM
internal static readonly bool CanUpdate = true;
internal static readonly string Variant = "linux-arm";
#elif ASF_VARIANT_LINUX_X64
internal static readonly bool CanUpdate = true;
internal static readonly string Variant = "linux-x64";
#elif ASF_VARIANT_OSX_X64
internal static readonly bool CanUpdate = true;
internal static readonly string Variant = "osx-x64";
#elif ASF_VARIANT_WIN_X64
internal static readonly bool CanUpdate = true;
internal static readonly string Variant = "win-x64";
#else
internal static readonly bool CanUpdate = false;
internal static readonly string Variant = SourceVariant;
#endif
private const string SourceVariant = "source";
internal static bool IsCustomBuild => Variant == SourceVariant;
}
}
}