From 9754c1b2d1e12d87a4f95220e80c0960f5364439 Mon Sep 17 00:00:00 2001 From: decentral1se Date: Fri, 17 Feb 2023 10:10:48 +0100 Subject: [PATCH] feat: server auto-complete on remove sub-command --- cli/server/remove.go | 4 +++- pkg/autocomplete/autocomplete.go | 22 +++++++++++++++++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/cli/server/remove.go b/cli/server/remove.go index d45b53e1..c7d15a89 100644 --- a/cli/server/remove.go +++ b/cli/server/remove.go @@ -7,6 +7,7 @@ import ( "path/filepath" "coopcloud.tech/abra/cli/internal" + "coopcloud.tech/abra/pkg/autocomplete" "coopcloud.tech/abra/pkg/client" "coopcloud.tech/abra/pkg/config" "coopcloud.tech/abra/pkg/formatter" @@ -124,7 +125,8 @@ like tears in rain. internal.HetznerCloudNameFlag, internal.HetznerCloudAPITokenFlag, }, - Before: internal.SubCommandBefore, + Before: internal.SubCommandBefore, + BashComplete: autocomplete.ServerNameComplete, Action: func(c *cli.Context) error { serverName := internal.ValidateServer(c) diff --git a/pkg/autocomplete/autocomplete.go b/pkg/autocomplete/autocomplete.go index e295afa7..40cf0ae2 100644 --- a/pkg/autocomplete/autocomplete.go +++ b/pkg/autocomplete/autocomplete.go @@ -9,7 +9,7 @@ import ( "github.com/urfave/cli" ) -// AppNameComplete copletes app names +// AppNameComplete copletes app names. func AppNameComplete(c *cli.Context) { appNames, err := config.GetAppNames() if err != nil { @@ -25,7 +25,7 @@ func AppNameComplete(c *cli.Context) { } } -// RecipeNameComplete completes recipe names +// RecipeNameComplete completes recipe names. func RecipeNameComplete(c *cli.Context) { catl, err := recipe.ReadRecipeCatalogue() if err != nil { @@ -41,7 +41,23 @@ func RecipeNameComplete(c *cli.Context) { } } -// SubcommandComplete completes subcommands. +// ServerNameComplete completes server names. +func ServerNameComplete(c *cli.Context) { + files, err := config.LoadAppFiles("") + if err != nil { + logrus.Fatal(err) + } + + if c.NArg() > 0 { + return + } + + for _, appFile := range files { + fmt.Println(appFile.Server) + } +} + +// SubcommandComplete completes sub-commands. func SubcommandComplete(c *cli.Context) { if c.NArg() > 0 { return