split RemoteBranch out from Branch

This commit is contained in:
Jesse Duffield 2019-11-17 10:23:06 +11:00
parent b7f2d0366b
commit 1f3e1720a3
8 changed files with 46 additions and 17 deletions

View file

@ -3,6 +3,8 @@ package commands
import (
"fmt"
"regexp"
"sort"
"strings"
)
func (c *GitCommand) GetRemotes() ([]*Remote, error) {
@ -24,9 +26,9 @@ func (c *GitCommand) GetRemotes() ([]*Remote, error) {
re := regexp.MustCompile(fmt.Sprintf("%s\\/(.*)", name))
matches := re.FindAllStringSubmatch(remoteBranchesStr, -1)
branches := make([]*Branch, len(matches))
branches := make([]*RemoteBranch, len(matches))
for j, match := range matches {
branches[j] = &Branch{
branches[j] = &RemoteBranch{
Name: match[1],
}
}
@ -38,5 +40,17 @@ func (c *GitCommand) GetRemotes() ([]*Remote, error) {
}
}
// now lets sort our remotes by name alphabetically
sort.Slice(remotes, func(i, j int) bool {
// we want origin at the top because we'll be most likely to want it
if remotes[i].Name == "origin" {
return true
}
if remotes[j].Name == "origin" {
return false
}
return strings.ToLower(remotes[i].Name) < strings.ToLower(remotes[j].Name)
})
return remotes, nil
}