Hyper-V support added

This commit is contained in:
v-vlshch 2014-06-23 11:19:06 -07:00
parent 48961e77aa
commit abc4350f75
2 changed files with 33 additions and 0 deletions

View File

@ -0,0 +1,30 @@
package vagrant
import (
"fmt"
"github.com/mitchellh/packer/packer"
"path/filepath"
)
type HypervProvider struct{}
func (p *HypervProvider) KeepInputArtifact() bool {
return false
}
func (p *HypervProvider) Process(ui packer.Ui, artifact packer.Artifact, dir string) (vagrantfile string, metadata map[string]interface{}, err error) {
// Create the metadata
metadata = map[string]interface{}{"provider": "hyperv"}
// Copy all of the original contents into the temporary directory
for _, path := range artifact.Files() {
ui.Message(fmt.Sprintf("Copying: %s", path))
dstPath := filepath.Join(dir, filepath.Base(path))
if err = CopyContents(dstPath, path); err != nil {
return
}
}
return
}

View File

@ -22,6 +22,7 @@ var builtins = map[string]string{
"mitchellh.vmware": "vmware", "mitchellh.vmware": "vmware",
"pearkes.digitalocean": "digitalocean", "pearkes.digitalocean": "digitalocean",
"packer.parallels": "parallels", "packer.parallels": "parallels",
"MSOpenTech.hyperv": "hyperv",
} }
type Config struct { type Config struct {
@ -220,6 +221,8 @@ func providerForName(name string) Provider {
return new(VMwareProvider) return new(VMwareProvider)
case "parallels": case "parallels":
return new(ParallelsProvider) return new(ParallelsProvider)
case "hyperv":
return new(HypervProvider)
default: default:
return nil return nil
} }