diff --git a/restore.go b/restore.go index 3ee0456..527e656 100644 --- a/restore.go +++ b/restore.go @@ -5,6 +5,7 @@ import ( "os" "path/filepath" + "go.wit.com/lib/gui/shell" "go.wit.com/lib/protobuf/gitpb" "go.wit.com/log" ) @@ -14,11 +15,26 @@ func restoreFromGoPkg(repo *gitpb.Repo) error { if err != nil { badExit(nil, err) } + repo.RunVerboseOnError([]string{"rm", "-f", "go.mod", "go.sum"}) rver := repo.GetLastTag() if rver == "" { return errors.New("could not get master version") } + goget := repo.GetGoPath() + "@" + rver + moddir := filepath.Join(homedir, "go/pkg/mod", repo.GetGoPath()+"@"+rver) + if shell.IsDir(moddir) { + // things are ok + } else { + return errors.New("must run go get " + goget) + } + modfile := filepath.Join(homedir, "go/pkg/mod", repo.GetGoPath()+"@"+rver, "go.mod") + if shell.Exists(modfile) { + // go.mod exists + } else { + // nothing to do. this repo does not have a go.mod file + return nil + } log.Info("mod path should be", modfile) data, err := os.ReadFile(modfile) if err != nil {