77 lines
1.7 KiB
Go
77 lines
1.7 KiB
Go
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)
|
|
}
|
|
}
|
|
}
|
|
}
|