@@ -19,7 +19,9 @@ package bootstrapper
19
19
import (
20
20
"fmt"
21
21
"io"
22
- "path/filepath"
22
+ "path"
23
+ goruntime "runtime"
24
+ "strings"
23
25
"sync"
24
26
25
27
"github.com/golang/glog"
@@ -81,7 +83,7 @@ func (s *SSHRunner) CombinedOutput(cmd string) (string, error) {
81
83
82
84
// Copy copies a file to the remote over SSH.
83
85
func (s * SSHRunner ) Copy (f assets.CopyableFile ) error {
84
- deleteCmd := fmt .Sprintf ("sudo rm -f %s" , filepath .Join (f .GetTargetDir (), f .GetTargetName ()))
86
+ deleteCmd := fmt .Sprintf ("sudo rm -f %s" , path .Join (f .GetTargetDir (), f .GetTargetName ()))
85
87
mkdirCmd := fmt .Sprintf ("sudo mkdir -p %s" , f .GetTargetDir ())
86
88
for _ , cmd := range []string {deleteCmd , mkdirCmd } {
87
89
if err := s .Run (cmd ); err != nil {
@@ -111,7 +113,11 @@ func (s *SSHRunner) Copy(f assets.CopyableFile) error {
111
113
fmt .Fprint (w , "\x00 " )
112
114
}()
113
115
114
- scpcmd := fmt .Sprintf ("sudo scp -t %s" , f .GetTargetDir ())
116
+ targetDir := f .GetTargetDir ()
117
+ if goruntime .GOOS == "windows" {
118
+ targetDir = strings .Replace (f .GetTargetDir (), "\\ " , "/" , - 1 )
119
+ }
120
+ scpcmd := fmt .Sprintf ("sudo scp -t %s" , targetDir )
115
121
if err := sess .Run (scpcmd ); err != nil {
116
122
return errors .Wrapf (err , "Error running scp command: %s" , scpcmd )
117
123
}
0 commit comments