Skip to content

Commit b3dacd3

Browse files
committed
Setup auto-creating of config folder if missing
- Setup check for config folder, if missing, create it so the program does not crash. - Causes stop if the config folder is not created at all or config settings
1 parent 37aaecf commit b3dacd3

File tree

2 files changed

+34
-6
lines changed

2 files changed

+34
-6
lines changed

Requestrr.WebApi/ClientApp/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Requestrr.WebApi/Program.cs

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
using System;
22
using System.IO;
33
using System.Linq;
4+
using System.Runtime;
45
using Microsoft.AspNetCore;
56
using Microsoft.AspNetCore.Hosting;
67
using Microsoft.Extensions.Configuration;
8+
using Microsoft.Extensions.Logging;
79
using Newtonsoft.Json;
810
using Requestrr.WebApi.RequestrrBot;
911
using Requestrr.WebApi.RequestrrBot.Locale;
@@ -28,15 +30,41 @@ public static void Main(string[] args)
2830

2931
private static void UpdateSettingsFile()
3032
{
31-
if (!File.Exists(SettingsFile.FilePath))
33+
try
3234
{
33-
File.WriteAllText(SettingsFile.FilePath, File.ReadAllText("SettingsTemplate.json").Replace("[PRIVATEKEY]", Guid.NewGuid().ToString()));
35+
DirectoryInfo dirInfo = new DirectoryInfo(Directory.GetCurrentDirectory());
36+
string configDirectory = dirInfo.EnumerateDirectories().Where(x => x.Name == "config").Single().FullName;
37+
if (configDirectory == string.Empty || configDirectory == null)
38+
{
39+
throw new Exception("config folder cannot be found");
40+
}
3441
}
35-
else
42+
catch
3643
{
37-
SettingsFileUpgrader.Upgrade(SettingsFile.FilePath);
44+
Console.WriteLine("No config folder found, creating one...");
45+
Directory.CreateDirectory("config");
46+
DirectoryInfo dirInfo = new DirectoryInfo(Directory.GetCurrentDirectory());
47+
string configDirectory = dirInfo.EnumerateDirectories().Where(x => x.Name == "config").Single().FullName;
3848
}
3949

50+
try
51+
{
52+
if (!File.Exists(SettingsFile.FilePath))
53+
{
54+
File.WriteAllText(SettingsFile.FilePath, File.ReadAllText("SettingsTemplate.json").Replace("[PRIVATEKEY]", Guid.NewGuid().ToString()));
55+
}
56+
else
57+
{
58+
SettingsFileUpgrader.Upgrade(SettingsFile.FilePath);
59+
}
60+
}
61+
catch(Exception ex)
62+
{
63+
Console.WriteLine($"Failed to write to config folder: {ex.Message}");
64+
throw new Exception("No config file to load and cannot create one. Bot cannot start.");
65+
}
66+
67+
4068
if (!File.Exists(NotificationsFile.FilePath))
4169
{
4270
File.WriteAllText(NotificationsFile.FilePath, File.ReadAllText("NotificationsTemplate.json"));

0 commit comments

Comments
 (0)