61 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.2 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)
 | |
| 	}
 | |
| 
 | |
| 	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
 | |
| }
 |