package forgepb import ( "os/user" "go.wit.com/lib/protobuf/gitpb" ) func (f *Forge) NewGoPathRepo(gopath string) (*gitpb.Repo, error) { repo, err := f.Repos.NewGoPath(f.GetGoSrc(), gopath, "") if err != nil { return nil, err } f.VerifyBranchNames(repo) repo.ParseGoSum() return repo, nil } func (f *Forge) VerifyBranchNames(newr *gitpb.Repo) { // log.Info("init worked for", newr.GoPath) if newr.GetMasterBranchName() == "" { // try to guess what the 'master' branch is if newr.IsBranch("guimaster") { newr.SetMasterBranchName("guimaster") } else if newr.IsBranch("master") { newr.SetMasterBranchName("master") } else if newr.IsBranch("main") { newr.SetMasterBranchName("main") } else { // todo, figure out the name from git newr.SetMasterBranchName("master") if newr.CheckoutMaster() { } else { cmd := []string{"git", "branch", "master"} newr.Run(cmd) } } } if f.Config.IsReadOnly(newr.GoPath) { return } if newr.GetDevelBranchName() == "" { if newr.IsBranch("guidevel") { newr.SetDevelBranchName("guidevel") } else if newr.IsBranch("devel") { newr.SetDevelBranchName("devel") } else { // forcing for now. todo: warn users newr.SetDevelBranchName("devel") if newr.CheckoutDevel() { } else { cmd := []string{"git", "branch", "devel"} newr.Run(cmd) } } } if newr.GetUserBranchName() == "" { usr, _ := user.Current() uname := usr.Username if newr.IsBranch(uname) { newr.SetUserBranchName(uname) } else { // forcing for now. todo: warn users newr.SetUserBranchName(uname) if newr.CheckoutUser() { } else { cmd := []string{"git", "branch", uname} newr.Run(cmd) } } } } // todo: check the forge config func (f *Forge) configUserBranchName(repo *gitpb.Repo) string { if repo.GetUserBranchName() != "" { return repo.GetUserBranchName() } usr, _ := user.Current() uname := usr.Username return uname } // todo: check the forge config func (f *Forge) configDevelBranchName(repo *gitpb.Repo) string { if repo.GetDevelBranchName() != "" { return repo.GetDevelBranchName() } if repo.IsBranch("guidevel") { return "guidevel" } if repo.IsBranch("devel") { return "devel" } return "devel" }