[easyssh] Change timeout type to time.Duration in Run and Stream Method (appleboy/easyssh-proxy#37)

* Change timeout type to time.Duration in Run and Stream Method

* Correct Connect method comment

https://github.com/appleboy/drone-ssh/commit/c193b89aa23
This commit is contained in:
SebastienDorgan 2017-11-11 02:29:53 +01:00 committed by Wataru Ashihara
parent cfa11e851a
commit 575df3ab1c
No known key found for this signature in database
GPG Key ID: CE9EC2D5AE43DEFA

View File

@ -161,20 +161,20 @@ func (ssh_conf *MakeConfig) Connect() (*ssh.Session, error) {
// Stream returns one channel that combines the stdout and stderr of the command // Stream returns one channel that combines the stdout and stderr of the command
// as it is run on the remote machine, and another that sends true when the // as it is run on the remote machine, and another that sends true when the
// command is done. The sessions and channels will then be closed. // command is done. The sessions and channels will then be closed.
func (ssh_conf *MakeConfig) Stream(command string, timeout int) (<-chan string, <-chan string, <-chan bool, <-chan error, error) { func (ssh_conf *MakeConfig) Stream(command string, timeout time.Duration) (<-chan string, <-chan string, <-chan bool, <-chan error, error) {
// continuously send the command's output over the channel // continuously send the command's output over the channel
stdoutChan := make(chan string) stdoutChan := make(chan string)
stderrChan := make(chan string) stderrChan := make(chan string)
doneChan := make(chan bool) doneChan := make(chan bool)
errChan := make(chan error) errChan := make(chan error)
// Connect to remote host // connect to remote host
session, err := ssh_conf.Connect() session, err := ssh_conf.Connect()
if err != nil { if err != nil {
return stdoutChan, stderrChan, doneChan, errChan, err return stdoutChan, stderrChan, doneChan, errChan, err
} }
// defer session.Close() // defer session.Close()
// Connect to both outputs (they are of type io.Reader) // connect to both outputs (they are of type io.Reader)
outReader, err := session.StdoutPipe() outReader, err := session.StdoutPipe()
if err != nil { if err != nil {
return stdoutChan, stderrChan, doneChan, errChan, err return stdoutChan, stderrChan, doneChan, errChan, err
@ -201,7 +201,7 @@ func (ssh_conf *MakeConfig) Stream(command string, timeout int) (<-chan string,
defer close(errChan) defer close(errChan)
defer session.Close() defer session.Close()
timeoutChan := time.After(time.Duration(timeout) * time.Second) timeoutChan := time.After(timeout * time.Second)
res := make(chan bool, 1) res := make(chan bool, 1)
go func() { go func() {
@ -230,7 +230,7 @@ func (ssh_conf *MakeConfig) Stream(command string, timeout int) (<-chan string,
} }
// Run command on remote machine and returns its stdout as a string // Run command on remote machine and returns its stdout as a string
func (ssh_conf *MakeConfig) Run(command string, timeout int) (outStr string, errStr string, isTimeout bool, err error) { func (ssh_conf *MakeConfig) Run(command string, timeout time.Duration) (outStr string, errStr string, isTimeout bool, err error) {
stdoutChan, stderrChan, doneChan, errChan, err := ssh_conf.Stream(command, timeout) stdoutChan, stderrChan, doneChan, errChan, err := ssh_conf.Stream(command, timeout)
if err != nil { if err != nil {
return outStr, errStr, isTimeout, err return outStr, errStr, isTimeout, err