.chglog
.gitea
cli
app
catalogue
formatter
internal
command.go
common.go
errors.go
validate.go
recipe
server
cli.go
upgrade.go
version.go
cmd
pkg
scripts
tests
.drone.yml
.envrc.sample
.gitignore
.goreleaser.yml
Makefile
README.md
go.mod
go.sum
65 lines
1.3 KiB
Go
65 lines
1.3 KiB
Go
package internal
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"coopcloud.tech/abra/pkg/app"
|
|
"coopcloud.tech/abra/pkg/config"
|
|
"coopcloud.tech/abra/pkg/recipe"
|
|
"github.com/sirupsen/logrus"
|
|
"github.com/urfave/cli/v2"
|
|
)
|
|
|
|
// ValidateRecipe ensures the recipe arg is valid.
|
|
func ValidateRecipe(c *cli.Context) recipe.Recipe {
|
|
recipeName := c.Args().First()
|
|
|
|
if recipeName == "" {
|
|
ShowSubcommandHelpAndError(c, errors.New("no recipe provided"))
|
|
}
|
|
|
|
recipe, err := recipe.Get(recipeName)
|
|
if err != nil {
|
|
logrus.Fatal(err)
|
|
}
|
|
|
|
logrus.Debugf("validated '%s' as recipe argument", recipeName)
|
|
|
|
return recipe
|
|
}
|
|
|
|
// ValidateApp ensures the app name arg is valid.
|
|
func ValidateApp(c *cli.Context) config.App {
|
|
appName := c.Args().First()
|
|
|
|
if appName == "" {
|
|
ShowSubcommandHelpAndError(c, errors.New("no app provided"))
|
|
}
|
|
|
|
app, err := app.Get(appName)
|
|
if err != nil {
|
|
logrus.Fatal(err)
|
|
}
|
|
|
|
if err := recipe.EnsureExists(app.Type); err != nil {
|
|
logrus.Fatal(err)
|
|
}
|
|
|
|
logrus.Debugf("validated '%s' as app argument", appName)
|
|
|
|
return app
|
|
}
|
|
|
|
// ValidateDomain ensures the domain name arg is valid.
|
|
func ValidateDomain(c *cli.Context) string {
|
|
domainName := c.Args().First()
|
|
|
|
if domainName == "" {
|
|
ShowSubcommandHelpAndError(c, errors.New("no domain provided"))
|
|
}
|
|
|
|
logrus.Debugf("validated '%s' as domain argument", domainName)
|
|
|
|
return domainName
|
|
}
|