mirror of
https://github.com/cyanfish/naps2.git
synced 2024-11-09 21:45:04 +03:00
44 lines
1.7 KiB
C#
44 lines
1.7 KiB
C#
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
|
|
namespace NAPS2.Tools;
|
|
|
|
// TODO: N2Config vs files in Naps2UserFolder?
|
|
public static class N2Config
|
|
{
|
|
public static string ShareDir
|
|
{
|
|
get
|
|
{
|
|
var dir = EnsureConfigFile().Value<string>("share-dir");
|
|
if (string.IsNullOrEmpty(dir))
|
|
{
|
|
throw new Exception("Expected share-dir to be specified in NAPS2.Tools/n2-config.json");
|
|
}
|
|
return dir;
|
|
}
|
|
}
|
|
|
|
public static string? AutoUpdateCert => EnsureConfigFile().Value<string>("auto-update-cert") ?? "";
|
|
|
|
public static string? MacApplicationIdentity => EnsureConfigFile().Value<string>("mac-application-identity") ?? "";
|
|
|
|
public static string? MacInstallerIdentity => EnsureConfigFile().Value<string>("mac-installer-identity") ?? "";
|
|
|
|
public static string? MacNotarizationArgs => EnsureConfigFile().Value<string>("mac-notarization-args") ?? "";
|
|
|
|
public static string? FlatpakGpgKey => EnsureConfigFile().Value<string>("flatpak-gpg-key") ?? "";
|
|
|
|
public static string? FlatpakRepo => EnsureConfigFile().Value<string>("flatpak-repo") ?? "";
|
|
|
|
private static JToken EnsureConfigFile()
|
|
{
|
|
if (!File.Exists(Paths.ConfigFile))
|
|
{
|
|
File.WriteAllText(Paths.ConfigFile, "{\n \"share-dir\": \"\",\n \"mac-application-identity\": \"\", \"mac-installer-identity\": \"\",\n \"mac-notarization-args\": \"\",\n \"flatpak-gpg-key\": \"\",\n \"flatpak-repo\": \"\",\n \"auto-update-cert\": \"\"\n}\n");
|
|
}
|
|
using var file = File.OpenText(Paths.ConfigFile);
|
|
using var reader = new JsonTextReader(file);
|
|
return JToken.ReadFrom(reader);
|
|
}
|
|
} |