diff options
author | kuba-- <kuba@sourced.tech> | 2018-08-29 14:56:25 +0200 |
---|---|---|
committer | kuba-- <kuba@sourced.tech> | 2018-08-29 14:56:25 +0200 |
commit | 75fa41d21c8d27ee0d5d7c7cb7ceeb2b765be330 (patch) | |
tree | 79b51316a608a848f60360fd76f1ca671c471579 | |
parent | 0167dabb78412ed5fb76cb4b174a6708c3be52b8 (diff) | |
download | go-git-75fa41d21c8d27ee0d5d7c7cb7ceeb2b765be330.tar.gz |
Add Status.IsUntracked function
Signed-off-by: kuba-- <kuba@sourced.tech>
-rw-r--r-- | status.go | 13 | ||||
-rw-r--r-- | worktree.go | 4 |
2 files changed, 12 insertions, 5 deletions
@@ -1,7 +1,10 @@ package git -import "fmt" -import "bytes" +import ( + "bytes" + "fmt" + "path/filepath" +) // Status represents the current status of a Worktree. // The key of the map is the path of the file. @@ -17,6 +20,12 @@ func (s Status) File(path string) *FileStatus { return s[path] } +// IsUntracked checks if file for given path is 'Untracked' +func (s Status) IsUntracked(path string) bool { + stat, ok := (s)[filepath.ToSlash(path)] + return ok && stat.Worktree == Untracked +} + // IsClean returns true if all the files aren't in Unmodified status. func (s Status) IsClean() bool { for _, status := range s { diff --git a/worktree.go b/worktree.go index 921e600..e45d815 100644 --- a/worktree.go +++ b/worktree.go @@ -750,9 +750,7 @@ func (w *Worktree) doClean(status Status, opts *CleanOptions, dir string, files return err } } else { - // check if file is 'Untracked' - s, ok := (status)[filepath.ToSlash(path)] - if ok && s.Worktree == Untracked { + if status.IsUntracked(path) { if err := w.Filesystem.Remove(path); err != nil { return err } |