package main import ( "errors" "os" "path/filepath" "go.wit.com/lib/protobuf/gitpb" "go.wit.com/log" ) func restoreFromGoPkg(repo *gitpb.Repo) error { homedir, err := os.UserHomeDir() if err != nil { badExit(nil, err) } rver := repo.GetMasterVersion() if rver == "" { return errors.New("could not get master version") } modfile := filepath.Join(homedir, "go/pkg/mod", repo.GetGoPath()+"@"+rver, "go.mod") log.Info("mod path should be", modfile) data, err := os.ReadFile(modfile) if err != nil { return err } modf, err := os.OpenFile("go.mod", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0644) if err != nil { return err } defer modf.Close() modf.Write(data) modfile = filepath.Join(homedir, "go/pkg/mod", repo.GetGoPath()+"@"+rver, "go.sum") log.Info("mod path should be", modfile) data, err = os.ReadFile(modfile) if err == nil { sumf, _ := os.OpenFile("go.sum", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0644) defer sumf.Close() sumf.Write(data) } // try go.sum, but no error checking since it might not be there return nil }