-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathProgram.cs
55 lines (49 loc) · 1.82 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using Newtonsoft.Json;
using System.Net;
using System.Text.RegularExpressions;
using TSApi.Models;
namespace TSApi
{
public class Program
{
public static void Main(string[] args)
{
string appfolder = "/opt/tsapi";
foreach (var line in args)
{
var g = new Regex("-([^=]+)=([^\n\r]+)").Match(line).Groups;
string comand = g[1].Value;
string value = g[2].Value;
switch (comand)
{
case "d":
{
// -d=/opt/tsapi
appfolder = value;
break;
}
}
}
if (System.IO.File.Exists($"{appfolder}/settings.json"))
{
Startup.settings = JsonConvert.DeserializeObject<Setting>(System.IO.File.ReadAllText($"{appfolder}/settings.json"));
Startup.settings.appfolder = appfolder;
}
else
{
Startup.settings.appfolder = appfolder;
System.IO.File.WriteAllText($"{appfolder}/settings.json", JsonConvert.SerializeObject(Startup.settings, Formatting.Indented));
}
CreateHostBuilder(null).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseKestrel(op => op.Listen(Startup.settings.IPAddressAny ? IPAddress.Any : IPAddress.Parse("127.0.0.1"), Startup.settings.port));
webBuilder.UseStartup<Startup>();
});
}
}