mirror of
https://github.com/chylex/Discord-History-Tracker.git
synced 2025-01-05 01:42:51 +01:00
66 lines
1.2 KiB
C#
66 lines
1.2 KiB
C#
using System;
|
|
using DHT.Utils.Logging;
|
|
|
|
namespace DHT.Desktop;
|
|
|
|
sealed class Arguments {
|
|
private static readonly Log Log = Log.ForType<Arguments>();
|
|
|
|
public static Arguments Empty => new(Array.Empty<string>());
|
|
|
|
public string? DatabaseFile { get; }
|
|
public ushort? ServerPort { get; }
|
|
public string? ServerToken { get; }
|
|
|
|
public Arguments(string[] args) {
|
|
for (int i = 0; i < args.Length; i++) {
|
|
string key = args[i];
|
|
|
|
switch (key) {
|
|
case "-debug":
|
|
Log.IsDebugEnabled = true;
|
|
continue;
|
|
}
|
|
|
|
string value;
|
|
|
|
if (i == 0 && !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;
|
|
}
|
|
}
|
|
}
|
|
}
|