package recipe import ( "coopcloud.tech/abra/cli/internal" "coopcloud.tech/abra/pkg/autocomplete" "coopcloud.tech/abra/pkg/i18n" "coopcloud.tech/abra/pkg/log" "github.com/go-git/go-git/v5" "github.com/spf13/cobra" ) var RecipeResetCommand = &cobra.Command{ Use: i18n.G("reset [flags]"), Aliases: []string{i18n.G("rs")}, Short: i18n.G("Remove all unstaged changes from recipe config"), Long: i18n.G("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) } }, }