in main.go [430:464]
func addVCS(pkgpath string, doc map[string]interface{}) {
pkg, err := build.Import(pkgpath, "", build.FindOnly)
if err != nil {
return
}
vcsCmd, _, err := vcs.FromDir(pkg.Dir, pkg.SrcRoot)
if err != nil {
return
}
switch vcsCmd.Cmd {
case "git":
cmd := exec.Command("git", "log", "-1", "--format=%H %ct %s")
cmd.Dir = pkg.Dir
output, err := cmd.CombinedOutput()
if err != nil {
return
}
fields := strings.SplitN(strings.TrimSpace(string(output)), " ", 3)
if len(fields) == 3 {
gitFields := map[string]interface{}{
fieldGitCommit: fields[0],
fieldGitSubject: fields[2],
}
unixSec, err := strconv.ParseInt(fields[1], 10, 64)
if err == nil {
committerDate := time.Unix(unixSec, 0).UTC()
gitFields[fieldGitCommitter] = map[string]interface{}{
fieldGitCommitterDate: committerDate,
}
}
doc[fieldGit] = gitFields
}
}
}