added convience functions for file copy

This commit is contained in:
Todd Gruben 2014-03-29 18:27:47 +00:00
parent a765dd8bc5
commit a85a469252

View file

@ -1,10 +1,12 @@
package remote
import (
"bufio"
"bytes"
"fmt"
"io"
"io/ioutil"
"os"
"code.google.com/p/go.crypto/ssh"
)
@ -128,6 +130,49 @@ func (self *SSH) CopyFrom(dest_name string, out io.Writer) error {
}
func (self *SSH) SimpleFileCopyFrom(server_name, local_name string) error {
fo, err := os.Create(local_name)
if err != nil {
return err
}
// close fo on exit and check for its returned error
defer fo.Close()
/*
defer func() {
if err := fo.Close(); err != nil {
return err
}
}()
*/
// make a write buffer
w := bufio.NewWriter(fo)
self.CopyFrom(server_name, w)
if err = w.Flush(); err != nil {
return err
}
return nil
}
func (self *SSH) SimpleFileCopyTo(local_name, server_name string) error {
fi, err := os.Open(local_name)
if err != nil {
return err
}
// close fi on exit and check for its returned error
defer fi.Close()
/*
defer func() {
if err := fi.Close(); err != nil {
return err
}
}()
*/
// make a read buffer
r := bufio.NewReader(fi)
return self.CopyTo(r, server_name)
}
func New(host, user, pem_path string) (*SSH, error) {
ret := new(SSH)
k := new(keychain)