Newer
Older
DryRun bool `short:"d" long:"dry-run" description:"if set only prints commands but do not run them"`
Keep bool `short:"k" long:"keep" description:"Keep the temporary files"`
Output string `short:"o" long:"output" description:"output directory, use \"stdout\" to print to stdout"`
Namespace string `short:"n" long:"namespace" description:"force helm namespace flag for all helm charts"`
WithoutHydrate bool `short:"h" long:"without-hydrate" description:"don't hydrate files with beaver variables"`
DirName string `required:"yes" positional-arg-name:"directory"`
func NewBuildCmd() *BuildCmd {
cmd := BuildCmd{}
return &cmd
}
// Execute ...
func (cmd *BuildCmd) Execute([]string) error {
log := LoggingOptions.Logger()
log.Debug().Str("directory", cmd.PositionalArgs.DirName).Msg("starting beaver")
config := runner.NewCmdConfig(
".",
cmd.PositionalArgs.DirName,
cmd.Args.DryRun,
cmd.Args.WithoutHydrate,
cmd.Args.Output,
cmd.Args.Namespace,
)
log.Fatal().Err(err).Msg("cannot get current working directory")
}
tmpDir, err := os.MkdirTemp(path, ".beaver-")
if err != nil {
return fmt.Errorf("failed to create temp dir: %w", err)
}
defer func() {
if err := os.RemoveAll(tmpDir); err != nil {
log.Err(err).Str("tempdir", tmpDir).Msg("failed to remove temp dir")
if err := config.Initialize(tmpDir); err != nil {
return fmt.Errorf("failed to prepare config: %w", err)
buildCmd := NewBuildCmd()
_, err := parser.AddCommand("build", "Build new environment", "", buildCmd)
if err != nil {
Logger.Fatal().Msg(err.Error())
}
g, err := parser.AddGroup("Logging", "Logging options", LoggingOptions)
if err != nil {
panic(err)
}
g.Namespace = "log"