From 742e5568363eecef3c00f602611ce6ad2e9c10a6 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Mon, 15 Jun 2015 14:44:54 -0700 Subject: [PATCH] provisioner/puppet-masterless: only base if manifest is a file [GH-1933] --- provisioner/puppet-masterless/provisioner.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/provisioner/puppet-masterless/provisioner.go b/provisioner/puppet-masterless/provisioner.go index eb364da58..a92a22094 100644 --- a/provisioner/puppet-masterless/provisioner.go +++ b/provisioner/puppet-masterless/provisioner.go @@ -259,7 +259,13 @@ func (p *Provisioner) uploadManifests(ui packer.Ui, comm packer.Communicator) (s } defer f.Close() - manifestFilename := filepath.Base(p.config.ManifestFile) + manifestFilename := p.config.ManifestFile + if fi, err := os.Stat(p.config.ManifestFile); err != nil { + return "", fmt.Errorf("Error inspecting manifest file: %s", err) + } else if !fi.IsDir() { + manifestFilename = filepath.Base(manifestFilename) + } + remoteManifestFile := fmt.Sprintf("%s/%s", remoteManifestsPath, manifestFilename) if err := comm.Upload(remoteManifestFile, f, nil); err != nil { return "", err