From 21bb0674f276c396056fe2fda24e6646e7594e51 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 12 Nov 2013 16:24:16 +0000 Subject: [PATCH] builder/docker: ctrl-C works during provisioning --- builder/docker/step_provision.go | 13 +++---------- common/step_provision.go | 12 +++++++++--- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/builder/docker/step_provision.go b/builder/docker/step_provision.go index ecee2f99d..726653763 100644 --- a/builder/docker/step_provision.go +++ b/builder/docker/step_provision.go @@ -2,16 +2,14 @@ package docker import ( "github.com/mitchellh/multistep" - "github.com/mitchellh/packer/packer" + "github.com/mitchellh/packer/common" ) type StepProvision struct{} func (s *StepProvision) Run(state multistep.StateBag) multistep.StepAction { containerId := state.Get("container_id").(string) - hook := state.Get("hook").(packer.Hook) tempDir := state.Get("temp_dir").(string) - ui := state.Get("ui").(packer.Ui) // Create the communicator that talks to Docker via various // os/exec tricks. @@ -21,13 +19,8 @@ func (s *StepProvision) Run(state multistep.StateBag) multistep.StepAction { ContainerDir: "/packer-files", } - // Run the provisioning hook - if err := hook.Run(packer.HookProvision, ui, comm, nil); err != nil { - state.Put("error", err) - return multistep.ActionHalt - } - - return multistep.ActionContinue + prov := common.StepProvision{Comm: comm} + return prov.Run(state) } func (s *StepProvision) Cleanup(state multistep.StateBag) {} diff --git a/common/step_provision.go b/common/step_provision.go index 49cb3b04c..ae06f1b0c 100644 --- a/common/step_provision.go +++ b/common/step_provision.go @@ -16,10 +16,16 @@ import ( // // Produces: // -type StepProvision struct{} +type StepProvision struct { + Comm packer.Communicator +} + +func (s *StepProvision) Run(state multistep.StateBag) multistep.StepAction { + comm := s.Comm + if comm == nil { + comm = state.Get("communicator").(packer.Communicator) + } -func (*StepProvision) Run(state multistep.StateBag) multistep.StepAction { - comm := state.Get("communicator").(packer.Communicator) hook := state.Get("hook").(packer.Hook) ui := state.Get("ui").(packer.Ui)