From a5ca2e5a274d2cc61c59f689b5cb4e3c544192d1 Mon Sep 17 00:00:00 2001 From: James Massara Date: Mon, 3 Nov 2014 19:15:58 -0800 Subject: [PATCH] Use sudo only if prevent_sudo is not set --- provisioner/chef-client/provisioner.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/provisioner/chef-client/provisioner.go b/provisioner/chef-client/provisioner.go index 0409fc290..5d42fba26 100644 --- a/provisioner/chef-client/provisioner.go +++ b/provisioner/chef-client/provisioner.go @@ -338,8 +338,14 @@ func (p *Provisioner) createJson(ui packer.Ui, comm packer.Communicator) (string func (p *Provisioner) createDir(ui packer.Ui, comm packer.Communicator, dir string) error { ui.Message(fmt.Sprintf("Creating directory: %s", dir)) + + mkdirCmd := fmt.Sprintf("mkdir -p '%s'", dir) + if !p.config.PreventSudo { + mkdirCmd = "sudo " + mkdirCmd + } + cmd := &packer.RemoteCmd{ - Command: fmt.Sprintf("sudo mkdir -p '%s'", dir), + Command: mkdirCmd, } if err := cmd.StartWithUi(comm, ui); err != nil { @@ -387,8 +393,14 @@ func (p *Provisioner) cleanClient(ui packer.Ui, comm packer.Communicator, node s func (p *Provisioner) removeDir(ui packer.Ui, comm packer.Communicator, dir string) error { ui.Message(fmt.Sprintf("Removing directory: %s", dir)) + + rmCmd := fmt.Sprintf("rm -rf '%s'", dir) + if !p.config.PreventSudo { + rmCmd = "sudo " + rmCmd + } + cmd := &packer.RemoteCmd{ - Command: fmt.Sprintf("sudo rm -rf %s", dir), + Command: rmCmd, } if err := cmd.StartWithUi(comm, ui); err != nil {