in scripts/remote.go [135:162]
func copySFTP(c *sftp.Client, tmp string, path string, mode os.FileMode) (string, error) {
if *windows {
tmp = filepath.Join("/", filepath.Base(tmp))
}
realPath := filepath.Join(tmp, filepath.Base(path))
if err := c.MkdirAll(tmp); err != nil {
return "", err
}
data, err := ioutil.ReadFile(path)
if err != nil {
return "", err
}
f, err := c.OpenFile(realPath, os.O_CREATE|os.O_TRUNC|os.O_RDWR)
if err != nil {
return "", err
}
defer func() { _ = f.Close() }()
_ = f.Chmod(mode)
if _, err := f.Write(data); err != nil {
return "", err
}
return realPath, nil
}