func copySFTP()

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
}