@@ -25,6 +25,7 @@ import (
25
25
"os/exec"
26
26
"path"
27
27
"path/filepath"
28
+ "runtime"
28
29
"strconv"
29
30
"time"
30
31
@@ -90,8 +91,15 @@ func (e *execRunner) Copy(f assets.CopyableFile) error {
90
91
dst := path .Join (f .GetTargetDir (), f .GetTargetName ())
91
92
if _ , err := os .Stat (dst ); err == nil {
92
93
glog .Infof ("found %s, removing ..." , dst )
93
- if _ , err := e .RunCmd (exec .Command ("sudo" , "rm" , "-f" , dst )); err != nil {
94
- return errors .Wrapf (err , "error removing file %s" , dst )
94
+ switch runtime .GOOS {
95
+ case "linux" :
96
+ if _ , err := e .RunCmd (exec .Command ("sudo" , "rm" , "-f" , dst )); err != nil {
97
+ return errors .Wrapf (err , "error removing file %s" , dst )
98
+ }
99
+ default :
100
+ if err := os .Remove (dst ); err != nil {
101
+ return errors .Wrapf (err , "error removing file %s" , dst )
102
+ }
95
103
}
96
104
}
97
105
@@ -106,27 +114,38 @@ func (e *execRunner) Copy(f assets.CopyableFile) error {
106
114
return errors .Wrapf (err , "error converting permissions %s to integer" , f .GetPermissions ())
107
115
}
108
116
109
- // write to TMP location ...
110
- tmpfile , err := ioutil .TempFile ("" , "minikube" )
111
- if err != nil {
112
- return errors .Wrapf (err , "error creating tempfile" )
113
- }
114
- defer os .Remove (tmpfile .Name ())
115
- err = writeFile (tmpfile .Name (), f , os .FileMode (perms ))
116
- if err != nil {
117
- return errors .Wrapf (err , "error writing to tempfile %s" , tmpfile .Name ())
117
+ switch runtime .GOOS {
118
+ case "linux" :
119
+ // write to TMP location ...
120
+ tmpfile , err := ioutil .TempFile ("" , "minikube" )
121
+ if err != nil {
122
+ return errors .Wrapf (err , "error creating tempfile" )
123
+ }
124
+ defer os .Remove (tmpfile .Name ())
125
+ err = writeFile (tmpfile .Name (), f , os .FileMode (perms ))
126
+ if err != nil {
127
+ return errors .Wrapf (err , "error writing to tempfile %s" , tmpfile .Name ())
128
+ }
129
+ // ... then use SUDO to move to target
130
+ // then sudo cp -a src dst
131
+ _ , err = e .RunCmd (exec .Command ("sudo" , "cp" , "-a" , tmpfile .Name (), dst ))
132
+ return err
133
+
134
+ default :
135
+ return writeFile (dst , f , os .FileMode (perms ))
118
136
}
119
- // ... then use SUDO to move to target
120
- // then sudo cp -a src dst
121
- _ , err = e .RunCmd (exec .Command ("sudo" , "cp" , "-a" , tmpfile .Name (), dst ))
122
137
123
- return err
124
138
}
125
139
126
140
// Remove removes a file
127
141
func (e * execRunner ) Remove (f assets.CopyableFile ) error {
128
142
dst := filepath .Join (f .GetTargetDir (), f .GetTargetName ())
129
143
glog .Infof ("rm: %s" , dst )
130
- _ , err := e .RunCmd (exec .Command ("sudo" , "rm" , "-f" , dst ))
131
- return err
144
+ switch runtime .GOOS {
145
+ case "linux" :
146
+ _ , err := e .RunCmd (exec .Command ("sudo" , "rm" , "-f" , dst ))
147
+ return err
148
+ default :
149
+ return os .Remove (dst )
150
+ }
132
151
}
0 commit comments