11using System ;
22using System . IO ;
33using System . Linq ;
4+ using System . Runtime ;
45using Microsoft . AspNetCore ;
56using Microsoft . AspNetCore . Hosting ;
67using Microsoft . Extensions . Configuration ;
8+ using Microsoft . Extensions . Logging ;
79using Newtonsoft . Json ;
810using Requestrr . WebApi . RequestrrBot ;
911using 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