package autocomplete

import (
	"fmt"

	"coopcloud.tech/abra/pkg/config"
	"coopcloud.tech/abra/pkg/recipe"
	"github.com/sirupsen/logrus"
	"github.com/urfave/cli"
)

// AppNameComplete copletes app names
func AppNameComplete(c *cli.Context) {
	appNames, err := config.GetAppNames()
	if err != nil {
		logrus.Warn(err)
	}

	if c.NArg() > 0 {
		return
	}

	for _, a := range appNames {
		fmt.Println(a)
	}
}

// RecipeNameComplete completes recipe names
func RecipeNameComplete(c *cli.Context) {
	catl, err := recipe.ReadRecipeCatalogue()
	if err != nil {
		logrus.Warn(err)
	}

	if c.NArg() > 0 {
		return
	}

	for name := range catl {
		fmt.Println(name)
	}
}

// SubcommandComplete completes subcommands.
func SubcommandComplete(c *cli.Context) {
	if c.NArg() > 0 {
		return
	}

	subcmds := []string{
		"app",
		"autocomplete",
		"catalogue",
		"recipe",
		"record",
		"server",
		"upgrade",
	}

	for _, cmd := range subcmds {
		fmt.Println(cmd)
	}
}