1package grifts 2 3import ( 4 "bufio" 5 "bytes" 6 "fmt" 7 "os" 8 "os/exec" 9 "strings" 10 11 . "github.com/markbates/grift/grift" 12) 13 14var _ = Add("release", func(c *Context) error { 15 cmd := exec.Command("git", "tag", "--list") 16 if b, err := cmd.CombinedOutput(); err == nil { 17 lines := bytes.Split(b, []byte("\n")) 18 for _, l := range lines[len(lines)-6:] { 19 fmt.Println(string(l)) 20 } 21 } 22 23 r := bufio.NewReader(os.Stdin) 24 fmt.Print("Enter version number (vx.x.x): ") 25 v, _ := r.ReadString('\n') 26 v = strings.TrimSpace(v) 27 28 cmd = exec.Command("git", "tag", v) 29 cmd.Stdin = os.Stdin 30 cmd.Stdout = os.Stdout 31 cmd.Stderr = os.Stderr 32 if err := cmd.Run(); err != nil { 33 return err 34 } 35 36 cmd = exec.Command("git", "push", "origin", "--tags") 37 cmd.Stdin = os.Stdin 38 cmd.Stdout = os.Stdout 39 cmd.Stderr = os.Stderr 40 if err := cmd.Run(); err != nil { 41 return err 42 } 43 44 cmd = exec.Command("goreleaser", "--rm-dist") 45 cmd.Stdin = os.Stdin 46 cmd.Stdout = os.Stdout 47 cmd.Stderr = os.Stderr 48 if err := cmd.Run(); err != nil { 49 return err 50 } 51 return nil 52}) 53