summaryrefslogtreecommitdiff
path: root/restore.go
diff options
context:
space:
mode:
Diffstat (limited to 'restore.go')
-rw-r--r--restore.go16
1 files changed, 16 insertions, 0 deletions
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 {