summaryrefslogtreecommitdiffstats
path: root/pkg/commands/git_commands/working_tree.go
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2022-01-22 00:13:51 +1100
committerJesse Duffield <jessedduffield@gmail.com>2022-01-22 10:48:51 +1100
commit5b7dd9e43ccd2b82f07f0f0ff0ee8d54d0ecba11 (patch)
tree2afa1c595dad6ae8c0503217eac3f40e2a925924 /pkg/commands/git_commands/working_tree.go
parent4ab5e5413944a92699a9540148666f0de26aa44b (diff)
properly resolve cyclic dependency
Diffstat (limited to 'pkg/commands/git_commands/working_tree.go')
-rw-r--r--pkg/commands/git_commands/working_tree.go17
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 {