12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- using SinMaiLauncher.ChildProcessHolder;
- using static System.IO.Path;
- namespace SinMaiLauncher.Models;
- internal class SettingReader
- {
- public readonly string BaseDir = Environment.CurrentDirectory;
- public readonly string InfraDir;
- public IProcessStartInfo Maria;
- public IProcessStartInfo AquaDx;
- public IProcessStartInfo Injector;
- public IProcessStartInfo SinMai;
- public string ExternalAppsDir { get; }
- public string SinMaiAimeFileDir { get; }
- public string SinMaiAimeFilePath { get; }
- public string ReplaceAppDataFileDir { get; }
- public string ReplaceAppDataFilePath { get; }
- public string SinMaiAppFileDir { get; }
- public string SinMaiAppFilePath { get; }
- public string FfmpegBinPath { get; }
- public SinMaiLauncherSettingModel Settings { get; }
- public SettingReader(SinMaiLauncherSettingModel settings)
- {
- ExternalAppsDir = GetFullPath(Combine(BaseDir, "ExternalApps"));
- Settings = settings;
- FfmpegBinPath = GetFullPath(Combine(BaseDir, settings.FfmpegBinPath));
- ReplaceAppDataFileDir = GetFullPath(Combine(BaseDir, settings.ReplaceAppDataFileDir));
- ReplaceAppDataFilePath = GetFullPath(Combine(ReplaceAppDataFileDir, settings.ReplaceAppDataFileName));
- InfraDir = GetFullPath(Combine(BaseDir, settings.Infra.InfraDir));
- var mariaDir = GetFullPath(Combine(InfraDir, settings.Infra.MariaDb.WorkingDir));
- var mariaExe = GetFullPath(Combine(mariaDir, settings.Infra.MariaDb.MySqlServerExe));
- var mariaArg = settings.Infra.MariaDb.MySqlServerArgs;
- Maria = new ProcessStartInfoImpl(mariaDir, mariaExe, mariaArg);
- var aquaDxDir = GetFullPath(Combine(InfraDir, settings.Infra.AquaDx.WorkingDir));
- var aquaDxJavaExe = GetFullPath(Combine(aquaDxDir, settings.Infra.AquaDx.JavaPath));
- var aquaDxJavaArg = settings.Infra.AquaDx.JavaArgs;
- AquaDx = new ProcessStartInfoImpl(aquaDxDir, aquaDxJavaExe, aquaDxJavaArg);
- var sinMaiDir = GetFullPath(Combine(InfraDir, settings.SinMai.WorkingDir));
- var injectorExe = GetFullPath(Combine(sinMaiDir, settings.SinMai.InjectExe));
- var injectorArg = settings.SinMai.InjectArgs;
- Injector = new ProcessStartInfoImpl(sinMaiDir, injectorExe, injectorArg);
- var sinMaiExe = GetFullPath(Combine(sinMaiDir, settings.SinMai.SinMaiExe));
- var sinMaiArg = settings.SinMai.SinMaiArgs;
- SinMai = new ProcessStartInfoImpl(sinMaiDir, sinMaiExe, sinMaiArg);
- SinMaiAimeFileDir = GetFullPath(Combine(sinMaiDir, settings.SinMai.AimeFileDir));
- SinMaiAimeFilePath = GetFullPath(Combine(SinMaiAimeFileDir, settings.SinMai.AimeFileName));
- SinMaiAppFileDir = GetFullPath(Combine(sinMaiDir, settings.SinMai.AppFileDir));
- SinMaiAppFilePath = GetFullPath(Combine(SinMaiAppFileDir, settings.SinMai.AppFileName));
- }
- private class ProcessStartInfoImpl(string workingDir, string exe, string arg) : IProcessStartInfo
- {
- public string WorkingDir { get; } = workingDir;
- public string Exe { get; } = exe;
- public string Arg { get; } = arg;
- }
- }
|