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