Skip to content
Snippets Groups Projects
build.go 778 B
Newer Older
steeve.chailloux's avatar
steeve.chailloux committed
package cmd

Florent Aide's avatar
Florent Aide committed
import "orus.io/cloudcrane/beaver/runner"

steeve.chailloux's avatar
steeve.chailloux committed
type BuildCmd struct {
	Args struct {
		Namespace string `required:"yes" positional-arg-name:"namespace"`
	} `positional-args:"yes"`
}

// NewBuildCmd ...
func NewBuildCmd() *BuildCmd {

	cmd := BuildCmd{}

	return &cmd
}

// Execute ...
func (cmd *BuildCmd) Execute([]string) error {
Florent Aide's avatar
Florent Aide committed
	Logger.Info().Str("namespace", cmd.Args.Namespace).Msg("starting beaver")
	config, err := runner.NewConfig(Logger, ".", cmd.Args.Namespace)
Florent Aide's avatar
Florent Aide committed
	if err != nil {
		Logger.Err(err).Msg("failed to prepare config")
	}
	r := runner.NewRunner(config)
	return r.Build()
steeve.chailloux's avatar
steeve.chailloux committed
}

func init() {
	buildCmd := NewBuildCmd()
	_, err := parser.AddCommand("build", "Build new environment", "", buildCmd)
	if err != nil {
		Logger.Fatal().Msg(err.Error())
	}
}