diff options
| -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) } |
