package recipe

import (
	"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"
)

var recipeDiffCommand = cli.Command{
	Name:        "diff",
	Usage:       "Show unstaged changes in recipe config",
	Description: "This command requires /usr/bin/git.",
	Aliases:     []string{"d"},
	ArgsUsage:   "<recipe>",
	Flags: []cli.Flag{
		internal.DebugFlag,
		internal.NoInputFlag,
	},
	Before:       internal.SubCommandBefore,
	BashComplete: autocomplete.RecipeNameComplete,
	Action: func(c *cli.Context) error {
		r := internal.ValidateRecipe(c)

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

		return nil
	},
}
