diff options
Diffstat (limited to 'repomap.go')
| -rw-r--r-- | repomap.go | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/repomap.go b/repomap.go new file mode 100644 index 0000000..cfedd19 --- /dev/null +++ b/repomap.go @@ -0,0 +1,58 @@ +package main + +import ( + "os" + "strings" + + "go.wit.com/log" +) + +func repomap() { + var changed bool = false + if argv.Repomap == "" { + return + } + data, _ := os.ReadFile(argv.Repomap) + + for _, line := range strings.Split(string(data), "\n") { + if line == "" { + continue + } + if strings.HasPrefix(line, "#") { + continue + } + parts := strings.Fields(line) + gopath := parts[0] + url := "https://" + parts[1] + var comment string + if len(parts) > 1 { + comment = strings.Join(parts[2:], " ") + } + repo := me.forge.Repos.FindByGoPath(gopath) + if repo == nil { + if argv.Clone { + me.forge.Clone(gopath) + } else { + log.Info(gopath, "need to clone") + } + } else { + if repo.URL != url { + log.Info(gopath, "url wrong", repo.URL, "vs", url) + log.Info("\tcomment", comment) + repo.URL = url + changed = true + } + if repo.Desc != comment && !(comment == "") { + log.Info(gopath, "comment wrong", repo.Desc, "vs", comment) + repo.Desc = comment + changed = true + } + } + } + + if changed { + me.forge.Repos.ConfigSave() + log.Info("config saved") + os.Exit(0) + } +} |
