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 | |
| parent | c63e73391d634bdb25b3df1c582bb56b6d9a0963 (diff) | |
| download | x-2c85a708989624df6bb9eca0a77ceeda8cf05f28.tar.xz x-2c85a708989624df6bb9eca0a77ceeda8cf05f28.zip | |
internal/minipaas: add Exec function
| -rw-r--r-- | internal/minipaas/minipaas.go | 25 | ||||
| -rw-r--r-- | mastodon/sona-pi-toki-pona/build.go | 17 | ||||
| -rw-r--r-- | tools/minipaas/main.go | 16 |
3 files changed, 27 insertions, 31 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 +} diff --git a/mastodon/sona-pi-toki-pona/build.go b/mastodon/sona-pi-toki-pona/build.go index 4c8010c..ba408df 100644 --- a/mastodon/sona-pi-toki-pona/build.go +++ b/mastodon/sona-pi-toki-pona/build.go @@ -32,22 +32,7 @@ func main() { log.Fatal(err) } - mp, err := minipaas.Dial() - if err != nil { - log.Fatal(err) - } - defer mp.Close() - - sess, err := mp.NewSession() - if err != nil { - log.Fatal(err) - } - defer sess.Close() - sess.Stdin = os.Stdin - sess.Stdout = os.Stdout - sess.Stderr = os.Stderr - - err = sess.Run("tar:from sona-pi-toki-pona " + pubURL) + err = minipaas.Exec("tar:from sona-pi-toki-pona " + pubURL) if err != nil { log.Fatal(err) } diff --git a/tools/minipaas/main.go b/tools/minipaas/main.go index cebd71e..5581053 100644 --- a/tools/minipaas/main.go +++ b/tools/minipaas/main.go @@ -3,7 +3,6 @@ package main import ( "flag" "log" - "os" "strings" "github.com/Xe/x/internal" @@ -14,20 +13,7 @@ func main() { flag.Parse() internal.HandleLicense() - client, err := minipaas.Dial() - if err != nil { - log.Fatal(err) - } - - sess, err := client.NewSession() - if err != nil { - log.Fatal(err) - } - defer sess.Close() - sess.Stdout = os.Stdout - sess.Stderr = os.Stderr - - err = sess.Run(strings.Join(flag.Args(), " ")) + err := minipaas.Exec(strings.Join(flag.Args(), " ")) if err != nil { log.Fatal(err) } |
