From 2c85a708989624df6bb9eca0a77ceeda8cf05f28 Mon Sep 17 00:00:00 2001 From: Christine Dodrill Date: Fri, 5 Oct 2018 14:11:00 -0700 Subject: internal/minipaas: add Exec function --- internal/minipaas/minipaas.go | 25 +++++++++++++++++++++++++ mastodon/sona-pi-toki-pona/build.go | 17 +---------------- 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) } -- cgit v1.2.3