package recipe import ( "coopcloud.tech/abra/cli/formatter" "coopcloud.tech/abra/cli/internal" "coopcloud.tech/abra/pkg/autocomplete" "coopcloud.tech/abra/pkg/catalogue" "github.com/sirupsen/logrus" "github.com/urfave/cli/v2" ) var recipeVersionCommand = &cli.Command{ Name: "versions", Usage: "List recipe versions", Aliases: []string{"v"}, ArgsUsage: "", BashComplete: autocomplete.RecipeNameComplete, Action: func(c *cli.Context) error { recipe := internal.ValidateRecipe(c) catalogue, err := catalogue.ReadRecipeCatalogue() if err != nil { logrus.Fatal(err) } recipeMeta, ok := catalogue[recipe.Name] if !ok { logrus.Fatalf("%s recipe doesn't exist?", recipe.Name) } tableCol := []string{"Version", "Service", "Image", "Tag", "Digest"} table := formatter.CreateTable(tableCol) for i := len(recipeMeta.Versions) - 1; i >= 0; i-- { for tag, meta := range recipeMeta.Versions[i] { for service, serviceMeta := range meta { table.Append([]string{tag, service, serviceMeta.Image, serviceMeta.Tag, serviceMeta.Digest}) } } } table.SetAutoMergeCells(true) table.Render() return nil }, }