fix: more robust <app> autocomplete + error handling
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
See toolshed/organising#652
This commit is contained in:
parent
8ac31330be
commit
fab93a559a
@ -52,8 +52,8 @@ Please note, "upgrade"/"rollback" do not support chaos operations.`,
|
|||||||
case 1:
|
case 1:
|
||||||
app, err := appPkg.Get(args[0])
|
app, err := appPkg.Get(args[0])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Debugf("autocomplete failed: %s", err)
|
errMsg := fmt.Sprintf("autocomplete failed: %s", err)
|
||||||
return nil, cobra.ShellCompDirectiveDefault
|
return []string{errMsg}, cobra.ShellCompDirectiveError
|
||||||
}
|
}
|
||||||
return autocomplete.RecipeVersionComplete(app.Recipe.Name)
|
return autocomplete.RecipeVersionComplete(app.Recipe.Name)
|
||||||
default:
|
default:
|
||||||
|
@ -2,6 +2,7 @@ package app
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"os"
|
"os"
|
||||||
"slices"
|
"slices"
|
||||||
@ -37,8 +38,8 @@ var AppLogsCommand = &cobra.Command{
|
|||||||
case 1:
|
case 1:
|
||||||
app, err := appPkg.Get(args[0])
|
app, err := appPkg.Get(args[0])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Debugf("autocomplete failed: %s", err)
|
errMsg := fmt.Sprintf("autocomplete failed: %s", err)
|
||||||
return nil, cobra.ShellCompDirectiveDefault
|
return []string{errMsg}, cobra.ShellCompDirectiveError
|
||||||
}
|
}
|
||||||
return autocomplete.ServiceNameComplete(app.Name)
|
return autocomplete.ServiceNameComplete(app.Name)
|
||||||
default:
|
default:
|
||||||
|
@ -46,8 +46,8 @@ beforehand.`,
|
|||||||
case 1:
|
case 1:
|
||||||
app, err := appPkg.Get(args[0])
|
app, err := appPkg.Get(args[0])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Debugf("autocomplete failed: %s", err)
|
errMsg := fmt.Sprintf("autocomplete failed: %s", err)
|
||||||
return nil, cobra.ShellCompDirectiveDefault
|
return []string{errMsg}, cobra.ShellCompDirectiveError
|
||||||
}
|
}
|
||||||
return autocomplete.RecipeVersionComplete(app.Recipe.Name)
|
return autocomplete.RecipeVersionComplete(app.Recipe.Name)
|
||||||
default:
|
default:
|
||||||
|
@ -34,8 +34,8 @@ var AppSecretGenerateCommand = &cobra.Command{
|
|||||||
case 1:
|
case 1:
|
||||||
app, err := appPkg.Get(args[0])
|
app, err := appPkg.Get(args[0])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Debugf("autocomplete failed: %s", err)
|
errMsg := fmt.Sprintf("autocomplete failed: %s", err)
|
||||||
return nil, cobra.ShellCompDirectiveDefault
|
return []string{errMsg}, cobra.ShellCompDirectiveError
|
||||||
}
|
}
|
||||||
return autocomplete.SecretComplete(app.Recipe.Name)
|
return autocomplete.SecretComplete(app.Recipe.Name)
|
||||||
default:
|
default:
|
||||||
@ -159,8 +159,8 @@ environment. Typically, you can let Abra generate them for you on app creation
|
|||||||
case 1:
|
case 1:
|
||||||
app, err := appPkg.Get(args[0])
|
app, err := appPkg.Get(args[0])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Debugf("autocomplete failed: %s", err)
|
errMsg := fmt.Sprintf("autocomplete failed: %s", err)
|
||||||
return nil, cobra.ShellCompDirectiveDefault
|
return []string{errMsg}, cobra.ShellCompDirectiveError
|
||||||
}
|
}
|
||||||
return autocomplete.SecretComplete(app.Recipe.Name)
|
return autocomplete.SecretComplete(app.Recipe.Name)
|
||||||
default:
|
default:
|
||||||
@ -245,8 +245,8 @@ var AppSecretRmCommand = &cobra.Command{
|
|||||||
if !rmAllSecrets {
|
if !rmAllSecrets {
|
||||||
app, err := appPkg.Get(args[0])
|
app, err := appPkg.Get(args[0])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Debugf("autocomplete failed: %s", err)
|
errMsg := fmt.Sprintf("autocomplete failed: %s", err)
|
||||||
return nil, cobra.ShellCompDirectiveDefault
|
return []string{errMsg}, cobra.ShellCompDirectiveError
|
||||||
}
|
}
|
||||||
return autocomplete.SecretComplete(app.Recipe.Name)
|
return autocomplete.SecretComplete(app.Recipe.Name)
|
||||||
}
|
}
|
||||||
|
@ -40,8 +40,8 @@ beforehand.`,
|
|||||||
case 1:
|
case 1:
|
||||||
app, err := appPkg.Get(args[0])
|
app, err := appPkg.Get(args[0])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Debugf("autocomplete failed: %s", err)
|
errMsg := fmt.Sprintf("autocomplete failed: %s", err)
|
||||||
return nil, cobra.ShellCompDirectiveDefault
|
return []string{errMsg}, cobra.ShellCompDirectiveError
|
||||||
}
|
}
|
||||||
return autocomplete.RecipeVersionComplete(app.Recipe.Name)
|
return autocomplete.RecipeVersionComplete(app.Recipe.Name)
|
||||||
default:
|
default:
|
||||||
|
@ -1,21 +1,26 @@
|
|||||||
package autocomplete
|
package autocomplete
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"sort"
|
"sort"
|
||||||
|
|
||||||
"coopcloud.tech/abra/pkg/app"
|
"coopcloud.tech/abra/pkg/app"
|
||||||
appPkg "coopcloud.tech/abra/pkg/app"
|
appPkg "coopcloud.tech/abra/pkg/app"
|
||||||
"coopcloud.tech/abra/pkg/log"
|
|
||||||
"coopcloud.tech/abra/pkg/recipe"
|
"coopcloud.tech/abra/pkg/recipe"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|
||||||
// AppNameComplete copletes app names.
|
// AppNameComplete copletes app names.
|
||||||
func AppNameComplete() ([]string, cobra.ShellCompDirective) {
|
func AppNameComplete() ([]string, cobra.ShellCompDirective) {
|
||||||
appNames, err := app.GetAppNames()
|
appFiles, err := app.LoadAppFiles("")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Debugf("autocomplete failed: %s", err)
|
err := fmt.Sprintf("autocomplete failed: %s", err)
|
||||||
return nil, cobra.ShellCompDirectiveError
|
return []string{err}, cobra.ShellCompDirectiveError
|
||||||
|
}
|
||||||
|
|
||||||
|
var appNames []string
|
||||||
|
for appName := range appFiles {
|
||||||
|
appNames = append(appNames, appName)
|
||||||
}
|
}
|
||||||
|
|
||||||
return appNames, cobra.ShellCompDirectiveDefault
|
return appNames, cobra.ShellCompDirectiveDefault
|
||||||
@ -24,8 +29,8 @@ func AppNameComplete() ([]string, cobra.ShellCompDirective) {
|
|||||||
func ServiceNameComplete(appName string) ([]string, cobra.ShellCompDirective) {
|
func ServiceNameComplete(appName string) ([]string, cobra.ShellCompDirective) {
|
||||||
serviceNames, err := app.GetAppServiceNames(appName)
|
serviceNames, err := app.GetAppServiceNames(appName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Debugf("autocomplete failed: %s", err)
|
err := fmt.Sprintf("autocomplete failed: %s", err)
|
||||||
return nil, cobra.ShellCompDirectiveError
|
return []string{err}, cobra.ShellCompDirectiveError
|
||||||
}
|
}
|
||||||
|
|
||||||
return serviceNames, cobra.ShellCompDirectiveDefault
|
return serviceNames, cobra.ShellCompDirectiveDefault
|
||||||
@ -35,8 +40,8 @@ func ServiceNameComplete(appName string) ([]string, cobra.ShellCompDirective) {
|
|||||||
func RecipeNameComplete() ([]string, cobra.ShellCompDirective) {
|
func RecipeNameComplete() ([]string, cobra.ShellCompDirective) {
|
||||||
catl, err := recipe.ReadRecipeCatalogue(false)
|
catl, err := recipe.ReadRecipeCatalogue(false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Debugf("autocomplete failed: %s", err)
|
err := fmt.Sprintf("autocomplete failed: %s", err)
|
||||||
return nil, cobra.ShellCompDirectiveError
|
return []string{err}, cobra.ShellCompDirectiveError
|
||||||
}
|
}
|
||||||
|
|
||||||
var recipeNames []string
|
var recipeNames []string
|
||||||
@ -51,8 +56,8 @@ func RecipeNameComplete() ([]string, cobra.ShellCompDirective) {
|
|||||||
func RecipeVersionComplete(recipeName string) ([]string, cobra.ShellCompDirective) {
|
func RecipeVersionComplete(recipeName string) ([]string, cobra.ShellCompDirective) {
|
||||||
catl, err := recipe.ReadRecipeCatalogue(false)
|
catl, err := recipe.ReadRecipeCatalogue(false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Debugf("autocomplete failed: %s", err)
|
err := fmt.Sprintf("autocomplete failed: %s", err)
|
||||||
return nil, cobra.ShellCompDirectiveError
|
return []string{err}, cobra.ShellCompDirectiveError
|
||||||
}
|
}
|
||||||
|
|
||||||
var recipeVersions []string
|
var recipeVersions []string
|
||||||
@ -69,8 +74,8 @@ func RecipeVersionComplete(recipeName string) ([]string, cobra.ShellCompDirectiv
|
|||||||
func ServerNameComplete() ([]string, cobra.ShellCompDirective) {
|
func ServerNameComplete() ([]string, cobra.ShellCompDirective) {
|
||||||
files, err := app.LoadAppFiles("")
|
files, err := app.LoadAppFiles("")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Debugf("autocomplete failed: %s", err)
|
err := fmt.Sprintf("autocomplete failed: %s", err)
|
||||||
return nil, cobra.ShellCompDirectiveError
|
return []string{err}, cobra.ShellCompDirectiveError
|
||||||
}
|
}
|
||||||
|
|
||||||
var serverNames []string
|
var serverNames []string
|
||||||
@ -85,14 +90,14 @@ func ServerNameComplete() ([]string, cobra.ShellCompDirective) {
|
|||||||
func CommandNameComplete(appName string) ([]string, cobra.ShellCompDirective) {
|
func CommandNameComplete(appName string) ([]string, cobra.ShellCompDirective) {
|
||||||
app, err := app.Get(appName)
|
app, err := app.Get(appName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Debugf("autocomplete failed: %s", err)
|
err := fmt.Sprintf("autocomplete failed: %s", err)
|
||||||
return nil, cobra.ShellCompDirectiveError
|
return []string{err}, cobra.ShellCompDirectiveError
|
||||||
}
|
}
|
||||||
|
|
||||||
cmdNames, err := appPkg.ReadAbraShCmdNames(app.Recipe.AbraShPath)
|
cmdNames, err := appPkg.ReadAbraShCmdNames(app.Recipe.AbraShPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Debugf("autocomplete failed: %s", err)
|
err := fmt.Sprintf("autocomplete failed: %s", err)
|
||||||
return nil, cobra.ShellCompDirectiveError
|
return []string{err}, cobra.ShellCompDirectiveError
|
||||||
}
|
}
|
||||||
|
|
||||||
sort.Strings(cmdNames)
|
sort.Strings(cmdNames)
|
||||||
@ -106,8 +111,8 @@ func SecretComplete(recipeName string) ([]string, cobra.ShellCompDirective) {
|
|||||||
|
|
||||||
config, err := r.GetComposeConfig(nil)
|
config, err := r.GetComposeConfig(nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Debugf("autocomplete failed: %s", err)
|
err := fmt.Sprintf("autocomplete failed: %s", err)
|
||||||
return nil, cobra.ShellCompDirectiveError
|
return []string{err}, cobra.ShellCompDirectiveError
|
||||||
}
|
}
|
||||||
|
|
||||||
var secretNames []string
|
var secretNames []string
|
||||||
|
Loading…
x
Reference in New Issue
Block a user