git.wit.org/jcarr/packr@v1.10.8/grifts/release.go (about)

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