From a6075d63951ff3a88363c361a00475833529de89 Mon Sep 17 00:00:00 2001 From: Vilsol Date: Wed, 6 Dec 2023 19:26:37 +0200 Subject: [PATCH] fix: refactor for previous changes --- cli/installations.go | 4 ++-- cli/lockfile.go | 8 ++++++++ tea/scenes/main_menu.go | 2 +- tea/scenes/{ => mods}/update_mods.go | 11 ++++++----- 4 files changed, 17 insertions(+), 8 deletions(-) rename tea/scenes/{ => mods}/update_mods.go (97%) diff --git a/cli/installations.go b/cli/installations.go index af43d50..101f9b5 100644 --- a/cli/installations.go +++ b/cli/installations.go @@ -476,7 +476,7 @@ func (i *Installation) UpdateMods(ctx *GlobalContext, mods []string) error { return errors.Wrap(err, "failed to read lock file") } - resolver := NewDependencyResolver(ctx.APIClient) + resolver := NewDependencyResolver(ctx.Provider) gameVersion, err := i.GetGameVersion(ctx) if err != nil { @@ -489,7 +489,7 @@ func (i *Installation) UpdateMods(ctx *GlobalContext, mods []string) error { } for _, modReference := range mods { - delete(lockFile, modReference) + lockFile = lockFile.Remove(modReference) } newLockFile, err := profile.Resolve(resolver, lockFile, gameVersion) diff --git a/cli/lockfile.go b/cli/lockfile.go index 9e90e40..f68e2d7 100644 --- a/cli/lockfile.go +++ b/cli/lockfile.go @@ -16,3 +16,11 @@ func (l LockFile) Clone() LockFile { } return lockFile } + +func (l *LockFile) Remove(modID ...string) *LockFile { + out := *l + for _, s := range modID { + delete(out, s) + } + return &out +} diff --git a/tea/scenes/main_menu.go b/tea/scenes/main_menu.go index 6e8a487..5d9c0cb 100644 --- a/tea/scenes/main_menu.go +++ b/tea/scenes/main_menu.go @@ -104,7 +104,7 @@ func NewMainMenu(root components.RootModel) tea.Model { utils.SimpleItem[mainMenu]{ ItemTitle: "Update Mods", Activate: func(msg tea.Msg, currentModel mainMenu) (tea.Model, tea.Cmd) { - newModel := NewUpdateMods(root, currentModel) + newModel := mods.NewUpdateMods(root, currentModel) return newModel, newModel.Init() }, }, diff --git a/tea/scenes/update_mods.go b/tea/scenes/mods/update_mods.go similarity index 97% rename from tea/scenes/update_mods.go rename to tea/scenes/mods/update_mods.go index a6bd793..d691a0b 100644 --- a/tea/scenes/update_mods.go +++ b/tea/scenes/mods/update_mods.go @@ -1,4 +1,4 @@ -package scenes +package mods import ( "context" @@ -17,6 +17,7 @@ import ( "github.com/satisfactorymodding/ficsit-cli/cli" "github.com/satisfactorymodding/ficsit-cli/ficsit" "github.com/satisfactorymodding/ficsit-cli/tea/components" + "github.com/satisfactorymodding/ficsit-cli/tea/scenes/keys" "github.com/satisfactorymodding/ficsit-cli/tea/utils" ) @@ -110,7 +111,7 @@ func (m updateModsList) LoadModData() { return } - resolver := cli.NewDependencyResolver(m.root.GetAPIClient()) + resolver := cli.NewDependencyResolver(m.root.GetProvider()) updatedLockfile, err := currentProfile.Resolve(resolver, nil, gameVersion) if err != nil { @@ -119,7 +120,7 @@ func (m updateModsList) LoadModData() { items := make([]list.Item, 0) i := 0 - for reference, currentLockedMod := range currentLockfile { + for reference, currentLockedMod := range *currentLockfile { r := reference updatedLockedMod, ok := updatedLockfile[reference] if !ok { @@ -239,7 +240,7 @@ func (m updateModsList) Update(msg tea.Msg) (tea.Model, tea.Cmd) { } switch keypress := msg.String(); keypress { - case KeyControlC: + case keys.KeyControlC: return m, tea.Quit case "q": if m.parent != nil { @@ -257,7 +258,7 @@ func (m updateModsList) Update(msg tea.Msg) (tea.Model, tea.Cmd) { return m.processActivation(i2.SimpleItem, msg) } return m, nil - case KeyEnter: + case keys.KeyEnter: if len(m.selectedMods) > 0 { err := m.root.GetCurrentInstallation().UpdateMods(m.root.GetGlobal(), m.selectedMods) if err != nil {