summaryrefslogtreecommitdiff
path: root/restore.go
diff options
context:
space:
mode:
Diffstat (limited to 'restore.go')
-rw-r--r--restore.go45
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
+}