mirror of
https://github.com/chylex/Discord-History-Tracker.git
synced 2024-11-24 20:42:46 +01:00
73 lines
1.3 KiB
C#
73 lines
1.3 KiB
C#
using System;
|
|
using DHT.Utils.Logging;
|
|
|
|
namespace DHT.Desktop;
|
|
|
|
sealed class Arguments {
|
|
private static readonly Log Log = Log.ForType<Arguments>();
|
|
|
|
private const int FirstArgument = 1;
|
|
|
|
public static Arguments Empty => new(Array.Empty<string>());
|
|
|
|
public bool Console { get; }
|
|
public string? DatabaseFile { get; }
|
|
public ushort? ServerPort { get; }
|
|
public string? ServerToken { get; }
|
|
|
|
public Arguments(string[] args) {
|
|
for (int i = FirstArgument; i < args.Length; i++) {
|
|
string key = args[i];
|
|
|
|
switch (key) {
|
|
case "-debug":
|
|
Log.IsDebugEnabled = true;
|
|
continue;
|
|
|
|
case "-console":
|
|
Console = true;
|
|
continue;
|
|
}
|
|
|
|
string value;
|
|
|
|
if (i == FirstArgument && !key.StartsWith('-')) {
|
|
value = key;
|
|
key = "-db";
|
|
}
|
|
else if (i >= args.Length - 1) {
|
|
Log.Warn("Missing value for command line argument: " + key);
|
|
continue;
|
|
}
|
|
else {
|
|
value = args[++i];
|
|
}
|
|
|
|
switch (key) {
|
|
case "-db":
|
|
DatabaseFile = value;
|
|
continue;
|
|
|
|
case "-port": {
|
|
if (ushort.TryParse(value, out var port)) {
|
|
ServerPort = port;
|
|
}
|
|
else {
|
|
Log.Warn("Invalid port number: " + value);
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
case "-token":
|
|
ServerToken = value;
|
|
continue;
|
|
|
|
default:
|
|
Log.Warn("Unknown command line argument: " + key);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|