package gitpb import ( "strings" "go.wit.com/log" ) // TODO: fix and clean this up. this is a work in progress func (repo *Repo) Reload() error { // log.Info("in reload", repo.FullPath) repo.Tags = new(GitTags) repo.reloadGitTags() repo.GoDeps = new(GoDeps) if repo.GoInfo == nil { repo.GoInfo = new(GoInfo) } repo.ParseGoSum() // also sets GoPrimitive repo.reloadVersions() repo.setRepoType() // everything has been checked, now save the mtime's repo.updateMtimes() return nil } func (repo *Repo) SetDevelBranchName(bname string) { repo.DevelBranchName = bname } func (repo *Repo) SetUserBranchName(bname string) { repo.UserBranchName = bname } // updates LastTag // todo, get this from the protobuf func (repo *Repo) setLastTag() { cmd := []string{"git", "rev-list", "--tags", "--max-count=1"} result := repo.RunQuiet(cmd) // log.Info("getLastTagVersion()", result.Stdout) if len(result.Stdout) != 1 { log.Log(GITPBWARN, "git LastTag() error:", result.Stdout) repo.LastTag = "" return } hash := result.Stdout[0] cmd = []string{"git", "describe", "--tags", "--always", hash} result = repo.RunQuiet(cmd) if len(result.Stdout) != 1 { log.Log(GITPBWARN, "git LastTag() error:", result.Stdout) repo.LastTag = "" return } repo.LastTag = result.Stdout[0] } func (repo *Repo) setCurrentBranchName() { repo.CurrentBranchName = "" r := repo.RunQuiet([]string{"git", "branch", "--show-current"}) output := strings.Join(r.Stdout, "\n") if r.Error != nil { log.Log(GITPBWARN, "GetCurrentBranchName() not in a git repo?", r.Error, repo.GetGoPath()) log.Log(GITPBWARN, "GetCurrentBranchName() output might have worked anyway:", output) } repo.CurrentBranchName = strings.TrimSpace(output) } // always spawns 'git' and always should spawn 'git' func (repo *Repo) setCurrentBranchVersion() { repo.CurrentBranchVersion = "" if repo == nil { log.Info("repo.GetCurrentBranchVersion() repo == nil") return } r := repo.RunQuiet([]string{"git", "describe", "--tags", "--always"}) output := strings.Join(r.Stdout, "\n") if r.Error != nil { log.Log(GITPBWARN, "GetCurrentBranchVersion() not in a git repo?", r.Error, repo.GetGoPath()) log.Log(GITPBWARN, "GetCurrentBranchVersion() output might have worked anyway:", output) } repo.CurrentBranchVersion = strings.TrimSpace(output) }