aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Headless.SDL2/Program.cs
diff options
context:
space:
mode:
authorTSRBerry <20988865+TSRBerry@users.noreply.github.com>2024-01-29 19:58:18 +0100
committerGitHub <noreply@github.com>2024-01-29 19:58:18 +0100
commit70fcba39de34fc211d09da12783898161724b0dc (patch)
tree9efdf7c191694e95de149129c9032b129527cb32 /src/Ryujinx.Headless.SDL2/Program.cs
parent7795b662a9b6054343195db9fc221a920509c1be (diff)
Make config filename changable for releases & Log to Ryujinx directory if application directory is not writable (#4707)
* Remove GetBaseApplicationDirectory() & Move logs directory to user base path We should assume the application directory might be write-protected. * Use Ryujinx.sh in Ryujinx.desktop This desktop file isn't really used right now, so this changes effectively nothing. * Use properties in ReleaseInformation.cs and add ConfigName property * Configure config filename in Github workflows * Add a separate config step for macOS Because they use BSD sed instead of GNU sed * Keep log directory at the old location for dev environments * Add FileSystemUtils since Directory.Move() doesn't work across filesystems Steal CopyDirectory code from https://learn.microsoft.com/en-us/dotnet/standard/io/how-to-copy-directories * Fix "Open Logs folder" button pointing to the wrong directory * Add execute permissions to Ryujinx.sh * Fix missing newlines * AppDataManager: Use FileSystemUtils.MoveDirectory() * Make dotnet format happy * Add a fallback for the logging directory
Diffstat (limited to 'src/Ryujinx.Headless.SDL2/Program.cs')
-rw-r--r--src/Ryujinx.Headless.SDL2/Program.cs27
1 files changed, 21 insertions, 6 deletions
diff --git a/src/Ryujinx.Headless.SDL2/Program.cs b/src/Ryujinx.Headless.SDL2/Program.cs
index e545079b..6eaa1b86 100644
--- a/src/Ryujinx.Headless.SDL2/Program.cs
+++ b/src/Ryujinx.Headless.SDL2/Program.cs
@@ -61,7 +61,7 @@ namespace Ryujinx.Headless.SDL2
static void Main(string[] args)
{
- Version = ReleaseInformation.GetVersion();
+ Version = ReleaseInformation.Version;
// Make process DPI aware for proper window sizing on high-res screens.
ForceDpiAware.Windows();
@@ -427,11 +427,26 @@ namespace Ryujinx.Headless.SDL2
if (!option.DisableFileLog)
{
- Logger.AddTarget(new AsyncLogTargetWrapper(
- new FileLogTarget(ReleaseInformation.GetBaseApplicationDirectory(), "file"),
- 1000,
- AsyncLogTargetOverflowAction.Block
- ));
+ FileStream logFile = FileLogTarget.PrepareLogFile(AppDomain.CurrentDomain.BaseDirectory);
+
+ if (logFile == null)
+ {
+ logFile = FileLogTarget.PrepareLogFile(AppDataManager.BaseDirPath);
+
+ if (logFile == null)
+ {
+ Logger.Error?.Print(LogClass.Application, "No writable log directory available. Make sure either the application directory or the Ryujinx directory is writable.");
+ }
+ }
+
+ if (logFile != null)
+ {
+ Logger.AddTarget(new AsyncLogTargetWrapper(
+ new FileLogTarget("file", logFile),
+ 1000,
+ AsyncLogTargetOverflowAction.Block
+ ));
+ }
}
// Setup graphics configuration