40 lines
No EOL
1.5 KiB
C#
40 lines
No EOL
1.5 KiB
C#
using System;
|
|
|
|
namespace Plugin.MongoLogs.Utils
|
|
{
|
|
public class MongoLogsConfiguration
|
|
{
|
|
public MongoLogsConfiguration(string host, short port, string dbName, string username, string password)
|
|
{
|
|
Host = host;
|
|
Port = port;
|
|
DbName = dbName;
|
|
Username = username;
|
|
Password = password;
|
|
}
|
|
|
|
public string Host { get; }
|
|
public short Port { get; }
|
|
public string DbName { get; }
|
|
public string Username { get; }
|
|
public string Password { get; }
|
|
|
|
public static MongoLogsConfiguration FromEnv()
|
|
{
|
|
string username = Environment.GetEnvironmentVariable("WINGSEMU_MONGO_USERNAME")
|
|
?? throw new InvalidOperationException("WINGSEMU_MONGO_USERNAME environment variable is required");
|
|
string password = Environment.GetEnvironmentVariable("WINGSEMU_MONGO_PWD")
|
|
?? throw new InvalidOperationException("WINGSEMU_MONGO_PWD environment variable is required");
|
|
|
|
return new MongoLogsConfiguration(
|
|
Environment.GetEnvironmentVariable("WINGSEMU_MONGO_HOST") ?? "localhost",
|
|
short.Parse(Environment.GetEnvironmentVariable("WINGSEMU_MONGO_PORT") ?? "27017"),
|
|
Environment.GetEnvironmentVariable("WINGSEMU_MONGO_DB") ?? "wingsemu_logs",
|
|
username,
|
|
password
|
|
);
|
|
}
|
|
|
|
public override string ToString() => $"mongodb://***:***@{Host}:{Port}";
|
|
}
|
|
} |