package gitpb // does processing on the go.mod and go.sum files import ( "errors" "time" ) // checks to see if the go.sum and go.mod files // match the repo.pb information func (repo *Repo) ValidGoSum() error { if repo.GoPrimitive { // repo thinks it is primitive but has a go.sum file if repo.Exists("go.sum") { return errors.New("GoPrimitive == true, but go.sum exists") } mtime, err := repo.mtime("go.mod") if err == nil { return err } if mtime != repo.LastGoDep.AsTime() { return errors.New("go.mod mtime mis-match") } } mtime, err := repo.mtime("go.sum") if err == nil { return err } if mtime != repo.LastGoDep.AsTime() { return errors.New("go.sum mtime mis-match") } return nil } func (repo *Repo) GoDepsLen() int { if repo.GoDeps == nil { return 0 } return len(repo.GoDeps.GoDeps) } func (repo *Repo) LastGitPull() (time.Time, error) { return repo.mtime(".git/FETCH_HEAD") } func (repo *Repo) GoSumAge() (time.Duration, error) { var mtime time.Time var err error mtime, err = repo.mtime("go.sum") if err == nil { return time.Since(mtime), nil } mtime, err = repo.mtime("go.mod") if err == nil { return time.Since(mtime), nil } now := time.Now() return time.Since(now), errors.New(repo.GoPath + " go.mod missing") }