github.com/crosseyed/versionbump@v1.1.0/internal/git.go (about) 1 package internal 2 3 import ( 4 "gopkg.in/src-d/go-git.v4" 5 "gopkg.in/src-d/go-git.v4/plumbing" 6 "log" 7 "strings" 8 ) 9 10 type Git struct { 11 repo *git.Repository 12 } 13 14 func PlainOpen(path string) Git { 15 repo, err := git.PlainOpen(path) 16 App.Errors(err, errGitLogStderr_Exit) 17 return Git{repo: repo} 18 } 19 20 func (r *Git) ListTags() []string { 21 tl := []string{} 22 tagrefs, err := r.repo.Tags() 23 App.Errors(err, errGitLogStderr_Exit) 24 err = tagrefs.ForEach(func(t *plumbing.Reference) error { 25 refname := string(t.Name()) 26 tag := strings.ReplaceAll(refname, "refs/tags/", "") 27 28 tl = append(tl, tag) 29 return nil 30 }) 31 App.Errors(err, errGitLogStderr_Exit) 32 return tl 33 } 34 35 // Error Handlers 36 func errGitLogStderr_Exit(err error) { 37 log.Printf(`git: %v`, err) 38 App.Exit(-1) 39 }