diff options
| -rw-r--r-- | reloadCheckDirty.go | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/reloadCheckDirty.go b/reloadCheckDirty.go index 826efef..69b6e52 100644 --- a/reloadCheckDirty.go +++ b/reloadCheckDirty.go @@ -22,6 +22,15 @@ func (repo *Repo) IsDirty() bool { return repo.Dirty } +func (repo *Repo) SmartSetState(newstate string) bool { + if newstate == repo.State { + // nothing changed + return false + } + repo.State = newstate + return true +} + // returns true if the repo is dirty // runs os.Exec('git') every time func (repo *Repo) CheckDirty() bool { @@ -38,8 +47,6 @@ func (repo *Repo) CheckDirty() bool { repo.State = "dirty" return true } - repo.State = "" - // dirty if anything but go.mod and go.sum var bad bool = false for _, line := range r.Stdout { @@ -61,7 +68,9 @@ func (repo *Repo) CheckDirty() bool { repo.Times.LastDirty = pbnow repo.Dirty = bad if bad { - repo.State = "dirty" + return repo.SmartSetState("dirty") + } else { + return repo.SmartSetState("") } return bad } |
