2024-12-17 00:00:49 -06:00
|
|
|
package gitpb
|
|
|
|
|
2024-12-17 01:15:31 -06:00
|
|
|
import (
|
|
|
|
"strings"
|
|
|
|
|
|
|
|
"go.wit.com/log"
|
|
|
|
)
|
|
|
|
|
2024-12-17 20:48:23 -06:00
|
|
|
// TODO: fix and clean this up. this is a work in progress
|
2024-12-17 00:00:49 -06:00
|
|
|
func (repo *Repo) Reload() error {
|
2024-12-17 21:15:19 -06:00
|
|
|
// log.Info("in reload", repo.FullPath)
|
2024-12-17 00:00:49 -06:00
|
|
|
repo.Tags = new(GitTags)
|
2024-12-17 01:15:31 -06:00
|
|
|
repo.reloadGitTags()
|
|
|
|
|
2024-12-17 00:00:49 -06:00
|
|
|
repo.GoDeps = new(GoDeps)
|
2024-12-17 20:48:23 -06:00
|
|
|
if repo.GoInfo == nil {
|
|
|
|
repo.GoInfo = new(GoInfo)
|
|
|
|
}
|
2024-12-17 00:00:49 -06:00
|
|
|
repo.ParseGoSum()
|
|
|
|
|
2024-12-17 01:15:31 -06:00
|
|
|
repo.setLastTag()
|
|
|
|
repo.setCurrentBranchName()
|
2024-12-17 20:48:23 -06:00
|
|
|
repo.setCurrentBranchVersion()
|
|
|
|
|
2024-12-17 06:37:14 -06:00
|
|
|
repo.setRepoType()
|
2024-12-17 01:15:31 -06:00
|
|
|
|
|
|
|
// everything has been checked, now save the mtime's
|
2024-12-17 20:48:23 -06:00
|
|
|
repo.updateMtimes()
|
2024-12-17 00:00:49 -06:00
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (repo *Repo) SetDevelBranchName(bname string) {
|
|
|
|
repo.DevelBranchName = bname
|
|
|
|
}
|
|
|
|
|
|
|
|
func (repo *Repo) SetUserBranchName(bname string) {
|
|
|
|
repo.UserBranchName = bname
|
|
|
|
}
|
2024-12-17 01:15:31 -06:00
|
|
|
|
|
|
|
// 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 {
|
2024-12-17 06:37:14 -06:00
|
|
|
log.Log(GITPBWARN, "GetCurrentBranchName() not in a git repo?", r.Error, repo.GetGoPath())
|
2024-12-17 01:15:31 -06:00
|
|
|
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 {
|
2024-12-17 06:37:14 -06:00
|
|
|
log.Log(GITPBWARN, "GetCurrentBranchVersion() not in a git repo?", r.Error, repo.GetGoPath())
|
2024-12-17 01:15:31 -06:00
|
|
|
log.Log(GITPBWARN, "GetCurrentBranchVersion() output might have worked anyway:", output)
|
|
|
|
}
|
|
|
|
repo.CurrentBranchVersion = strings.TrimSpace(output)
|
|
|
|
}
|