|
|
@ -172,28 +172,28 @@ func copyFile(src, dst string) (err error) {
|
|
|
|
|
|
|
|
|
|
|
|
in, err := os.Open(src)
|
|
|
|
in, err := os.Open(src)
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
return
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
defer in.Close()
|
|
|
|
defer in.Close()
|
|
|
|
|
|
|
|
|
|
|
|
out, err := os.Create(dst)
|
|
|
|
out, err := os.Create(dst)
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
return
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if _, err = io.Copy(out, in); err != nil {
|
|
|
|
if _, err = io.Copy(out, in); err != nil {
|
|
|
|
out.Close()
|
|
|
|
out.Close()
|
|
|
|
return
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Check for write errors on Close
|
|
|
|
// Check for write errors on Close
|
|
|
|
if err = out.Close(); err != nil {
|
|
|
|
if err = out.Close(); err != nil {
|
|
|
|
return
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
si, err := os.Stat(src)
|
|
|
|
si, err := os.Stat(src)
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
return
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Temporary fix for Go < 1.9
|
|
|
|
// Temporary fix for Go < 1.9
|
|
|
@ -205,7 +205,7 @@ func copyFile(src, dst string) (err error) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
err = os.Chmod(dst, si.Mode())
|
|
|
|
err = os.Chmod(dst, si.Mode())
|
|
|
|
|
|
|
|
|
|
|
|
return
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// cloneSymlink will create a new symlink that points to the resolved path of sl.
|
|
|
|
// cloneSymlink will create a new symlink that points to the resolved path of sl.
|
|
|
|