Ejemplo n.º 1
0
func copyFile(mach platform.Machine, r io.Reader, path string) error {
	sess, err := mach.SSHSession()
	if err != nil {
		return err
	}
	defer sess.Close()

	wr, err := sess.StdinPipe()
	if err != nil {
		return err
	}

	if err := sess.Start(fmt.Sprintf("tee %s", path)); err != nil {
		return err
	}

	go func() {
		io.Copy(wr, r)
		wr.Close()
	}()

	return sess.Wait()
}