mirror of
https://github.com/FalloutCollaborationProject/FCP-Mod-Updater.git
synced 2026-07-27 17:04:05 -07:00
Mod Director Resolver
This commit is contained in:
+1
-32
@@ -14,7 +14,7 @@ public class ScanCommand : AsyncCommand<ModPathSettings>
|
||||
try
|
||||
{
|
||||
// Resolve mods directory
|
||||
var modsDirectory = ResolveModsDirectory(settings);
|
||||
var modsDirectory = ModsDirectoryResolver.Resolve(settings.ModDirectory?.FullName, interactive: true);
|
||||
if (modsDirectory == null)
|
||||
{
|
||||
return 1;
|
||||
@@ -50,35 +50,4 @@ public class ScanCommand : AsyncCommand<ModPathSettings>
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
private static string? ResolveModsDirectory(ModPathSettings settings)
|
||||
{
|
||||
if (settings.ModDirectory != null)
|
||||
{
|
||||
return settings.ModDirectory.FullName;
|
||||
}
|
||||
|
||||
// Auto-discover
|
||||
var pathDiscovery = new PathDiscoveryService();
|
||||
var paths = pathDiscovery.DiscoverModPaths();
|
||||
|
||||
if (paths.Count == 0)
|
||||
{
|
||||
AnsiConsole.MarkupLine("[red]Error: Could not find RimWorld Mods folder.[/]");
|
||||
AnsiConsole.MarkupLine("[grey]Please specify the path using --directory[/]");
|
||||
return null;
|
||||
}
|
||||
|
||||
if (paths.Count == 1)
|
||||
{
|
||||
return paths[0];
|
||||
}
|
||||
|
||||
// Multiple paths found - let user choose
|
||||
return AnsiConsole.Prompt(
|
||||
new SelectionPrompt<string>()
|
||||
.Title("[bold]Multiple RimWorld installations found. Select one:[/]")
|
||||
.PageSize(10)
|
||||
.AddChoices(paths));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ public class UpdateCommand : AsyncCommand<ModPathSettings>
|
||||
try
|
||||
{
|
||||
// Resolve mods directory
|
||||
var modsDirectory = ResolveModsDirectory(settings);
|
||||
var modsDirectory = ModsDirectoryResolver.Resolve(settings.ModDirectory?.FullName, interactive: false);
|
||||
if (modsDirectory == null)
|
||||
{
|
||||
return 1;
|
||||
@@ -90,33 +90,4 @@ public class UpdateCommand : AsyncCommand<ModPathSettings>
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
private static string? ResolveModsDirectory(ModPathSettings settings)
|
||||
{
|
||||
if (settings.ModDirectory != null)
|
||||
{
|
||||
return settings.ModDirectory.FullName;
|
||||
}
|
||||
|
||||
// Auto-discover
|
||||
var pathDiscovery = new PathDiscoveryService();
|
||||
var paths = pathDiscovery.DiscoverModPaths();
|
||||
|
||||
if (paths.Count == 0)
|
||||
{
|
||||
AnsiConsole.MarkupLine("[red]Error: Could not find RimWorld Mods folder.[/]");
|
||||
AnsiConsole.MarkupLine("[grey]Please specify the path using --directory[/]");
|
||||
return null;
|
||||
}
|
||||
|
||||
if (paths.Count == 1)
|
||||
{
|
||||
return paths[0];
|
||||
}
|
||||
|
||||
// Multiple paths found - use first one for non-interactive mode
|
||||
AnsiConsole.MarkupLine($"[yellow]Multiple installations found, using: {paths[0]}[/]");
|
||||
AnsiConsole.MarkupLine("[grey]Use --directory to specify a different path[/]");
|
||||
return paths[0];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user