46 lines
932 B
Go
46 lines
932 B
Go
package gitpb
|
|
|
|
// runs git, parses output
|
|
// types faster than you can
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"go.wit.com/lib/gui/shell"
|
|
"go.wit.com/log"
|
|
)
|
|
|
|
func (repo *Repo) NoteChange(s string) {
|
|
log.Warn("NoteChange()", s)
|
|
}
|
|
|
|
// just return the current value
|
|
func (repo *Repo) IsDirty() bool {
|
|
return repo.Dirty
|
|
}
|
|
|
|
// actually os.Exec('git')
|
|
func (repo *Repo) CheckDirty() bool {
|
|
cmd := []string{"git", "status", "--porcelain"}
|
|
r := shell.PathRunLog(repo.FullPath, cmd, GITPB)
|
|
if r.Error != nil {
|
|
log.Warn("CheckDirty() status cmd =", cmd)
|
|
out := strings.Join(r.Stdout, "\n")
|
|
log.Warn("CheckDirty() status out =", out)
|
|
log.Warn("CheckDirty() status err =", r.Error)
|
|
log.Error(r.Error, "CheckDirty() git status error")
|
|
repo.NoteChange("git status is in error " + fmt.Sprint(r.Error))
|
|
repo.Dirty = true
|
|
return true
|
|
}
|
|
|
|
if len(r.Stdout) == 0 {
|
|
repo.Dirty = false
|
|
return false
|
|
}
|
|
repo.Dirty = true
|
|
return true
|
|
|
|
}
|