refactor: recipe validation

This commit is contained in:
2021-09-05 01:55:10 +02:00
parent 317be4cc01
commit c99f0fc908
7 changed files with 106 additions and 86 deletions

View File

@ -4,10 +4,6 @@ import (
"github.com/urfave/cli/v2"
)
// Flags
// AppName stores the variable from AppNameFlag
// Secrets stores the variable from SecretsFlag
var Secrets bool
@ -43,8 +39,10 @@ var ContextFlag = &cli.StringFlag{
Destination: &Context,
}
// Force force functionality without asking.
var Force bool
// ForceFlag turns on/off force functionality.
var ForceFlag = &cli.BoolFlag{
Name: "force",
Value: false,

View File

@ -7,10 +7,10 @@ import (
"github.com/urfave/cli/v2"
)
// ShowSubcommandHelpAndError exits the program on error, logs the error to the terminal, and shows the help command.
// ShowSubcommandHelpAndError exits the program on error, logs the error to the
// terminal, and shows the help command.
func ShowSubcommandHelpAndError(c *cli.Context, err interface{}) {
if err2 := cli.ShowSubcommandHelp(c); err2 != nil {
// go-critic wants me to check this error but if this throws an error while we throw an error that would be annoying
logrus.Error(err2)
}
logrus.Error(err)

24
cli/internal/validate.go Normal file
View File

@ -0,0 +1,24 @@
package internal
import (
"errors"
"coopcloud.tech/abra/recipe"
"github.com/sirupsen/logrus"
"github.com/urfave/cli/v2"
)
// ValidateRecipeArg ensures the recipe arg is valid.
func ValidateRecipeArg(c *cli.Context) string {
recipeName := c.Args().First()
if recipeName == "" {
ShowSubcommandHelpAndError(c, errors.New("no recipe provided"))
}
if err := recipe.EnsureExists(recipeName); err != nil {
logrus.Fatal(err)
}
return recipeName
}