diff options
Diffstat (limited to 'restore.go')
| -rw-r--r-- | restore.go | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/restore.go b/restore.go new file mode 100644 index 0000000..1acb9b2 --- /dev/null +++ b/restore.go @@ -0,0 +1,45 @@ +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 +} |
