forked from toolshed/abra
		
	
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package recipe
 | |
| 
 | |
| import (
 | |
| 	"coopcloud.tech/abra/cli/internal"
 | |
| 	"coopcloud.tech/abra/pkg/autocomplete"
 | |
| 	"coopcloud.tech/abra/pkg/log"
 | |
| 	"github.com/go-git/go-git/v5"
 | |
| 	"github.com/spf13/cobra"
 | |
| )
 | |
| 
 | |
| var RecipeResetCommand = &cobra.Command{
 | |
| 	Use:     "reset <recipe> [flags]",
 | |
| 	Aliases: []string{"rs"},
 | |
| 	Short:   "Remove all unstaged changes from recipe config",
 | |
| 	Long:    "WARNING: this will delete your changes. Be Careful.",
 | |
| 	Args:    cobra.ExactArgs(1),
 | |
| 	ValidArgsFunction: func(
 | |
| 		cmd *cobra.Command,
 | |
| 		args []string,
 | |
| 		toComplete string) ([]string, cobra.ShellCompDirective) {
 | |
| 		return autocomplete.RecipeNameComplete()
 | |
| 	},
 | |
| 	Run: func(cmd *cobra.Command, args []string) {
 | |
| 		r := internal.ValidateRecipe(args, cmd.Name())
 | |
| 
 | |
| 		repo, err := git.PlainOpen(r.Dir)
 | |
| 		if err != nil {
 | |
| 			log.Fatal(err)
 | |
| 		}
 | |
| 
 | |
| 		ref, err := repo.Head()
 | |
| 		if err != nil {
 | |
| 			log.Fatal(err)
 | |
| 		}
 | |
| 
 | |
| 		worktree, err := repo.Worktree()
 | |
| 		if err != nil {
 | |
| 			log.Fatal(err)
 | |
| 		}
 | |
| 
 | |
| 		opts := &git.ResetOptions{Commit: ref.Hash(), Mode: git.HardReset}
 | |
| 		if err := worktree.Reset(opts); err != nil {
 | |
| 			log.Fatal(err)
 | |
| 		}
 | |
| 	},
 | |
| }
 |