Windows fixes

Strip carriage returns from end of lines in virtualbox/driver.go, fixing wait for virtualbox host shutdown.
Fix target upload directory path in communicator.go to use forward slashes.  (When running on windows path/filepath returns backslashes...which does not work when the target host is unix).
This commit is contained in:
Jeff Stamerjohn 2013-07-25 09:28:04 -07:00
parent 7472bbb17c
commit 4ff0185add
2 changed files with 8 additions and 0 deletions

View File

@ -50,6 +50,9 @@ func (d *VBox42Driver) IsRunning(name string) (bool, error) {
} }
for _, line := range strings.Split(stdout.String(), "\n") { for _, line := range strings.Split(stdout.String(), "\n") {
// Need to trim off CR character when running in windows
line = strings.TrimRight(line, "\r");
if line == `VMState="running"` { if line == `VMState="running"` {
return true, nil return true, nil
} }

View File

@ -130,6 +130,11 @@ func (c *comm) Upload(path string, input io.Reader) error {
target_dir := filepath.Dir(path) target_dir := filepath.Dir(path)
target_file := filepath.Base(path) target_file := filepath.Base(path)
// On windows, filepath.Dir uses backslash seperators (ie. "\tmp").
// This does not work when the target host is unix. Switch to forward slash
// which works for unix and windows
target_dir = filepath.ToSlash(target_dir)
// Start the sink mode on the other side // Start the sink mode on the other side
// TODO(mitchellh): There are probably issues with shell escaping the path // TODO(mitchellh): There are probably issues with shell escaping the path
log.Println("Starting remote scp process in sink mode") log.Println("Starting remote scp process in sink mode")