diff options
| author | Christine Dodrill <me@christine.website> | 2018-10-05 14:11:00 -0700 |
|---|---|---|
| committer | Christine Dodrill <me@christine.website> | 2018-10-05 14:31:22 -0700 |
| commit | 2c85a708989624df6bb9eca0a77ceeda8cf05f28 (patch) | |
| tree | f554937b8bc5c0ae72cd483e117cb88d3a58e75a /internal | |
| parent | c63e73391d634bdb25b3df1c582bb56b6d9a0963 (diff) | |
| download | x-2c85a708989624df6bb9eca0a77ceeda8cf05f28.tar.xz x-2c85a708989624df6bb9eca0a77ceeda8cf05f28.zip | |
internal/minipaas: add Exec function
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/minipaas/minipaas.go | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/internal/minipaas/minipaas.go b/internal/minipaas/minipaas.go index 5632c3c..e08c8f0 100644 --- a/internal/minipaas/minipaas.go +++ b/internal/minipaas/minipaas.go @@ -38,3 +38,28 @@ func Dial() (*ssh.Client, error) { return client, nil } + +// Exec runs an arbitrary dokku command with OS standard input, output and error. +func Exec(args string) error { + mp, err := Dial() + if err != nil { + return err + } + defer mp.Close() + + sess, err := mp.NewSession() + if err != nil { + return err + } + defer sess.Close() + sess.Stdin = os.Stdin + sess.Stdout = os.Stdout + sess.Stderr = os.Stderr + + err = sess.Run(args) + if err != nil { + return err + } + + return nil +} |
