# HG changeset patch
# User Steeven Herlant <steeven.herlant@cloudcrane.io>
# Date 1697548425 -7200
#      Tue Oct 17 15:13:45 2023 +0200
# Node ID 95cd542700437e6d2be07af38e3faeefe360a54d
# Parent  614e21f6f48777bf8493898bed89931b1a5cda5a
feat: namespace beaver can now be a variable

diff --git a/runner/main.go b/runner/main.go
--- a/runner/main.go
+++ b/runner/main.go
@@ -36,8 +36,17 @@
 
 // Build is in charge of applying commands based on the config data
 func (r *Runner) Build(tmpDir string) error {
+	variables, err := r.config.prepareVariables(false)
+	if err != nil {
+		return fmt.Errorf("cannot prepare variables: %w", err)
+	}
 	var outputDir string
 	if r.config.Output == "" {
+		w := bytes.NewBuffer([]byte{})
+		if err := hydrateString(r.config.Namespace, w, variables); err != nil {
+			return err
+		}
+		r.config.Namespace = w.String()
 		outputDir = filepath.Join(r.config.RootDir, "build", r.config.Namespace)
 	} else {
 		outputDir = r.config.Output
@@ -59,7 +68,7 @@
 			return fmt.Errorf("cannot clean dir: %s: %w", outputDir, err)
 		}
 	}
-	variables, err := r.config.prepareVariables(true)
+	variables, err = r.config.prepareVariables(true)
 	if err != nil {
 		return fmt.Errorf("cannot prepare variables: %w", err)
 	}