From 4eb8ac80c232ec48d95b543a489d2db7fa28bdf7 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Mon, 15 Apr 2013 19:53:29 -0700 Subject: [PATCH] Ability to get a builder from the env --- packer/environment.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packer/environment.go b/packer/environment.go index 819c8dd63..083f7a418 100644 --- a/packer/environment.go +++ b/packer/environment.go @@ -34,6 +34,7 @@ type Command interface { // if you're building a custom Packer binary, you could instantiate multiple // environments and run them in parallel. type Environment struct { + builder map[string]Builder command map[string]Command ui Ui } @@ -41,6 +42,7 @@ type Environment struct { // This creates a new environment func NewEnvironment() *Environment { env := &Environment{} + env.builder = make(map[string]Builder) env.command = make(map[string]Command) env.command["build"] = new(buildCommand) env.command["version"] = new(versionCommand) @@ -48,6 +50,12 @@ func NewEnvironment() *Environment { return env } +// Looks up a builder with the given name and returns an interface +// to access it. +func (e *Environment) Builder(name string) Builder { + return e.builder[name] +} + // Executes a command as if it was typed on the command-line interface. // The return value is the exit code of the command. func (e *Environment) Cli(args []string) int {