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 exist // also check for a match with the repo.pb GoPrimitive bool // todo: check mtime func (repo *Repo) ValidGoSum() error { if !repo.Exists("go.mod") { return errors.New("ValidGoSum() go.mod is missing") } if repo.GoPrimitive { if !repo.Exists("go.mod") { return errors.New("GoPrimitive == true, but go.mod is missing") } // 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") } /* // todo: fix this mtime, err := repo.mtime("go.mod") if err == nil { return err } if mtime != repo.LastGoDep.AsTime() { return errors.New("go.mod mtime mis-match") } */ return nil } if !repo.Exists("go.sum") { return errors.New("ValidGoSum() go.sum is missing") } /* mtime, err := repo.mtime("go.sum") // todo: fix this 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") }