File tree Expand file tree Collapse file tree 2 files changed +15
-3
lines changed
pacmc-cli/src/commonMain/kotlin/net/axay/pacmc/cli Expand file tree Collapse file tree 2 files changed +15
-3
lines changed Original file line number Diff line number Diff line change @@ -26,7 +26,7 @@ class RemoveCommand : CliktCommand(
26
26
terminal.println (" Resolving effects of removal..." )
27
27
val archive = Archive .terminalFromString(archiveName) ? : return @launchJob
28
28
29
- val modIds = CliParser .resolveSlugs(modSlugNames) ? : return @launchJob
29
+ val modIds = CliParser .resolveSlugs(modSlugNames, archive ) ? : return @launchJob
30
30
31
31
val spinner = SpinnerAnimation ()
32
32
spinner.start()
Original file line number Diff line number Diff line change @@ -37,7 +37,10 @@ object CliParser {
37
37
class Invalid (val slug : String , val notFound : Boolean = false ) : SlugResolveResult()
38
38
}
39
39
40
- suspend fun resolveSlugs (rawSlugs : List <String >): Set <ModId >? {
40
+ suspend fun resolveSlugs (
41
+ rawSlugs : List <String >,
42
+ archive : Archive ? = null,
43
+ ): Set <ModId >? {
41
44
val spinner = SpinnerAnimation ()
42
45
spinner.start()
43
46
@@ -56,7 +59,16 @@ object CliParser {
56
59
} else if (ids.isEmpty()) {
57
60
SlugResolveResult .Invalid (rawSlug, notFound = true )
58
61
} else {
59
- SlugResolveResult .Ambiguous (ids)
62
+ val modId = archive?.getInstalled()?.singleOrNull {
63
+ val installedModId = it.readModId()
64
+ ids.any { (_, id) -> id == installedModId }
65
+ }?.readModId()
66
+
67
+ if (modId != null ) {
68
+ SlugResolveResult .Resolved (modId)
69
+ } else {
70
+ SlugResolveResult .Ambiguous (ids)
71
+ }
60
72
}
61
73
}
62
74
2 -> {
You can’t perform that action at this time.
0 commit comments