Files
cocommit/src/cmd/utils/git_scope.go
T

55 lines
1.0 KiB
Go

package utils
import (
"os/exec"
"strings"
)
func GitCheckAuthors() []User {
// check for all authors in git repo
cmd := exec.Command("git", "shortlog", "-sne", "--all")
out, err := cmd.Output()
if err != nil {
return nil
}
lines := strings.Split(string(out), "\n")
cmd = exec.Command("git", "rev-parse", "--show-toplevel")
out, err = cmd.Output()
if err != nil {
return nil
}
git_folder := strings.TrimSpace(string(out))
var authors []User
for _, line := range lines {
parts := strings.Split(line, "\t")
if len(line) < 2 {
continue
}
nameAndEmail := strings.Split(parts[1], "<")
if len(nameAndEmail) < 2 {
continue
}
name := strings.TrimSpace(nameAndEmail[0])
email := strings.TrimSpace(strings.TrimSuffix(nameAndEmail[1], ">"))
authors = append(authors, User{
Shortname: name[:2],
Longname: name,
Username: name,
Email: email,
Ex: false,
Groups: func () []string { if git_folder != "" {
return []string{git_folder}
} else {
return []string{}
}
}(),
})
}
return authors
}