Skip to content

Commit d0dd33f

Browse files
authored
Merge pull request #282 from roots/fix-cross-filesystem-file-moving
Fix cross-link bug for virtualenv
2 parents 6e8de8f + 4ca166b commit d0dd33f

File tree

1 file changed

+4
-9
lines changed

1 file changed

+4
-9
lines changed

trellis/virtualenv.go

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -148,25 +148,20 @@ func (v *Virtualenv) UpdateBinShebangs(binGlob string) error {
148148
return err
149149
}
150150
defer tmp.Close()
151+
defer os.Remove(tmp.Name())
151152

152153
if err = v.replaceShebang(f, tmp); err != nil {
153154
return err
154155
}
155156

156-
if err := tmp.Close(); err != nil {
157-
return err
158-
}
159-
160-
if err := f.Close(); err != nil {
157+
// overwrite the original bin file with the fixed version
158+
if _, err = io.Copy(tmp, f); err != nil {
161159
return err
162160
}
163161

164-
// overwrite the original bin file with the fixed version
165-
if err := os.Rename(tmp.Name(), path); err != nil {
162+
if err = os.Chmod(path, permissions); err != nil {
166163
return err
167164
}
168-
169-
os.Chmod(path, permissions)
170165
}
171166

172167
return nil

0 commit comments

Comments
 (0)