diff options
author | Jesse Duffield <jessedduffield@gmail.com> | 2022-01-22 00:13:51 +1100 |
---|---|---|
committer | Jesse Duffield <jessedduffield@gmail.com> | 2022-01-22 10:48:51 +1100 |
commit | 5b7dd9e43ccd2b82f07f0f0ff0ee8d54d0ecba11 (patch) | |
tree | 2afa1c595dad6ae8c0503217eac3f40e2a925924 /pkg/commands/git_commands/working_tree.go | |
parent | 4ab5e5413944a92699a9540148666f0de26aa44b (diff) |
properly resolve cyclic dependency
Diffstat (limited to 'pkg/commands/git_commands/working_tree.go')
-rw-r--r-- | pkg/commands/git_commands/working_tree.go | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/pkg/commands/git_commands/working_tree.go b/pkg/commands/git_commands/working_tree.go index c40f75693..4e97913fb 100644 --- a/pkg/commands/git_commands/working_tree.go +++ b/pkg/commands/git_commands/working_tree.go @@ -10,7 +10,6 @@ import ( "github.com/jesseduffield/lazygit/pkg/commands/loaders" "github.com/jesseduffield/lazygit/pkg/commands/models" "github.com/jesseduffield/lazygit/pkg/commands/oscommands" - "github.com/jesseduffield/lazygit/pkg/gui/filetree" "github.com/jesseduffield/lazygit/pkg/utils" ) @@ -160,12 +159,18 @@ func (self *WorkingTreeCommands) DiscardAllFileChanges(file *models.File) error return self.DiscardUnstagedFileChanges(file) } -func (self *WorkingTreeCommands) DiscardAllDirChanges(node *filetree.FileNode) error { +type IFileNode interface { + ForEachFile(cb func(*models.File) error) error + GetFilePathsMatching(test func(*models.File) bool) []string + GetPath() string +} + +func (self *WorkingTreeCommands) DiscardAllDirChanges(node IFileNode) error { // this could be more efficient but we would need to handle all the edge cases return node.ForEachFile(self.DiscardAllFileChanges) } -func (self *WorkingTreeCommands) DiscardUnstagedDirChanges(node *filetree.FileNode) error { +func (self *WorkingTreeCommands) DiscardUnstagedDirChanges(node IFileNode) error { if err := self.RemoveUntrackedDirFiles(node); err != nil { return err } @@ -178,9 +183,9 @@ func (self *WorkingTreeCommands) DiscardUnstagedDirChanges(node *filetree.FileNo return nil } -func (self *WorkingTreeCommands) RemoveUntrackedDirFiles(node *filetree.FileNode) error { - untrackedFilePaths := node.GetPathsMatching( - func(n *filetree.FileNode) bool { return n.File != nil && !n.File.GetIsTracked() }, +func (self *WorkingTreeCommands) RemoveUntrackedDirFiles(node IFileNode) error { + untrackedFilePaths := node.GetFilePathsMatching( + func(file *models.File) bool { return !file.GetIsTracked() }, ) for _, path := range untrackedFilePaths { |