package recipe

import (
	"context"

	"coopcloud.tech/abra/cli/internal"
	"coopcloud.tech/abra/pkg/autocomplete"
	gitPkg "coopcloud.tech/abra/pkg/git"
	"coopcloud.tech/abra/pkg/log"
	"github.com/urfave/cli/v3"
)

var recipeDiffCommand = cli.Command{
	Name:          "diff",
	Usage:         "Show unstaged changes in recipe config",
	Description:   "This command requires /usr/bin/git.",
	Aliases:       []string{"d"},
	UsageText:     "abra recipe diff <recipe> [options]",
	Before:        internal.SubCommandBefore,
	ShellComplete: autocomplete.RecipeNameComplete,
	HideHelp:      true,
	Action: func(ctx context.Context, cmd *cli.Command) error {
		r := internal.ValidateRecipe(cmd)

		if err := gitPkg.DiffUnstaged(r.Dir); err != nil {
			log.Fatal(err)
		}

		return nil
	},
}
