diff options
Diffstat (limited to 'initRepoList.go')
| -rw-r--r-- | initRepoList.go | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/initRepoList.go b/initRepoList.go new file mode 100644 index 0000000..befe28c --- /dev/null +++ b/initRepoList.go @@ -0,0 +1,70 @@ +package main + +// this initializes the repos + +import ( + "io/ioutil" + "os" + "os/user" + "path/filepath" + "strings" + + "go.wit.com/lib/gui/repolist" + "go.wit.com/lib/gui/repostatus" + "go.wit.com/log" +) + +func (r *repoWindow) initRepoList() { + usr, _ := user.Current() + + repos := parsecfg("~/.config/autotypist") + for _, line := range repos { + log.Verbose("repo =", line) + path, mbranch, dbranch, ubranch := splitLine(line) + if mbranch == "" { + mbranch = "master" + } + if dbranch == "" { + dbranch = "devel" + } + if ubranch == "" { + ubranch = usr.Username + } + r.View.AddRepo(path, mbranch, dbranch, ubranch) + } + + if args.OnlyMe { + log.Info("not scanning everything") + } else { + log.Info("scanning everything in ~/go/src") + for i, path := range repostatus.ListGitDirectories() { + // log.Info("addRepo()", i, path) + path = strings.TrimPrefix(path, me.goSrcPwd.String()) + path = strings.Trim(path, "/") + log.Info("addRepo()", i, path) + r.View.AddRepo(path, "master", "devel", usr.Username) + } + } +} + +func parsecfg(f string) []string { + homeDir, _ := os.UserHomeDir() + cfgfile := filepath.Join(homeDir, f) + content, _ := ioutil.ReadFile(cfgfile) + out := string(content) + out = strings.TrimSpace(out) + lines := strings.Split(out, "\n") + return lines +} + +// returns path, master branch name, devel branch name, user branch name +func splitLine(line string) (string, string, string, string) { + var path, master, devel, user string + parts := strings.Split(line, " ") + path, parts = repolist.RemoveFirstElement(parts) + master, parts = repolist.RemoveFirstElement(parts) + devel, parts = repolist.RemoveFirstElement(parts) + user, parts = repolist.RemoveFirstElement(parts) + // path, master, devel, user := strings.Split(line, " ") + return path, master, devel, user +} |
