forked from toolshed/abra
		
	feat: add a flag to commit your changes before creating a tag
This commit is contained in:
		@ -10,6 +10,7 @@ import (
 | 
				
			|||||||
	"coopcloud.tech/abra/pkg/config"
 | 
						"coopcloud.tech/abra/pkg/config"
 | 
				
			||||||
	"coopcloud.tech/abra/pkg/recipe"
 | 
						"coopcloud.tech/abra/pkg/recipe"
 | 
				
			||||||
	"coopcloud.tech/tagcmp"
 | 
						"coopcloud.tech/tagcmp"
 | 
				
			||||||
 | 
						"github.com/AlecAivazis/survey/v2"
 | 
				
			||||||
	"github.com/go-git/go-git/v5"
 | 
						"github.com/go-git/go-git/v5"
 | 
				
			||||||
	"github.com/go-git/go-git/v5/plumbing"
 | 
						"github.com/go-git/go-git/v5/plumbing"
 | 
				
			||||||
	"github.com/go-git/go-git/v5/plumbing/object"
 | 
						"github.com/go-git/go-git/v5/plumbing/object"
 | 
				
			||||||
@ -56,6 +57,22 @@ var PatchFlag = &cli.BoolFlag{
 | 
				
			|||||||
	Destination: &Patch,
 | 
						Destination: &Patch,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var CommitMessage string
 | 
				
			||||||
 | 
					var CommitMessageFlag = &cli.StringFlag{
 | 
				
			||||||
 | 
						Name:        "commit-message",
 | 
				
			||||||
 | 
						Usage:       "commit message",
 | 
				
			||||||
 | 
						Aliases:     []string{"cm"},
 | 
				
			||||||
 | 
						Destination: &CommitMessage,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var Commit bool
 | 
				
			||||||
 | 
					var CommitFlag = &cli.BoolFlag{
 | 
				
			||||||
 | 
						Name:        "commit",
 | 
				
			||||||
 | 
						Value:       false,
 | 
				
			||||||
 | 
						Aliases:     []string{"c"},
 | 
				
			||||||
 | 
						Destination: &Commit,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var recipeReleaseCommand = &cli.Command{
 | 
					var recipeReleaseCommand = &cli.Command{
 | 
				
			||||||
	Name:      "release",
 | 
						Name:      "release",
 | 
				
			||||||
	Usage:     "tag a recipe",
 | 
						Usage:     "tag a recipe",
 | 
				
			||||||
@ -67,6 +84,8 @@ var recipeReleaseCommand = &cli.Command{
 | 
				
			|||||||
		MinorFlag,
 | 
							MinorFlag,
 | 
				
			||||||
		MajorFlag,
 | 
							MajorFlag,
 | 
				
			||||||
		PushFlag,
 | 
							PushFlag,
 | 
				
			||||||
 | 
							CommitFlag,
 | 
				
			||||||
 | 
							CommitMessageFlag,
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	Action: func(c *cli.Context) error {
 | 
						Action: func(c *cli.Context) error {
 | 
				
			||||||
		recipe := internal.ValidateRecipe(c)
 | 
							recipe := internal.ValidateRecipe(c)
 | 
				
			||||||
@ -79,6 +98,29 @@ var recipeReleaseCommand = &cli.Command{
 | 
				
			|||||||
			logrus.Fatal("Main app's version is empty.")
 | 
								logrus.Fatal("Main app's version is empty.")
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if Commit || (CommitMessage != "") {
 | 
				
			||||||
 | 
								commitRepo, err := git.PlainOpen(directory)
 | 
				
			||||||
 | 
								if err != nil {
 | 
				
			||||||
 | 
									logrus.Fatal(err)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								commitWorktree, err := commitRepo.Worktree()
 | 
				
			||||||
 | 
								if err != nil {
 | 
				
			||||||
 | 
									logrus.Fatal(err)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if CommitMessage == "" {
 | 
				
			||||||
 | 
									prompt := &survey.Input{
 | 
				
			||||||
 | 
										Message: "commit message",
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									survey.AskOne(prompt, &CommitMessage)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								_, err = commitWorktree.Commit(CommitMessage, &git.CommitOptions{})
 | 
				
			||||||
 | 
								if err != nil {
 | 
				
			||||||
 | 
									logrus.Fatal(err)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								logrus.Info("changes commited")
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		repo, err := git.PlainOpen(directory)
 | 
							repo, err := git.PlainOpen(directory)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			logrus.Fatal(err)
 | 
								logrus.Fatal(err)
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user