From d13cf70644e7b953c16b53e54ca8c36e03b04292 Mon Sep 17 00:00:00 2001 From: trusz Date: Mon, 28 Oct 2019 16:42:50 +0100 Subject: [PATCH] split up cmd package --- src/cmd/background.go | 36 ++++++++++++++++++++++++++++ src/cmd/cmd.go | 56 ------------------------------------------- src/cmd/exec.go | 18 ++++++++++++++ src/cmd/run.go | 40 +++++++++++++++++++++++++++++++ 4 files changed, 94 insertions(+), 56 deletions(-) create mode 100644 src/cmd/background.go create mode 100644 src/cmd/exec.go create mode 100644 src/cmd/run.go diff --git a/src/cmd/background.go b/src/cmd/background.go new file mode 100644 index 0000000..e1b05ca --- /dev/null +++ b/src/cmd/background.go @@ -0,0 +1,36 @@ +package cmd + +import ( + "os/exec" +) + +// Background starts the given command in a background process +func Background(command string) { + + app := "sh" + arg0 := "-c" + + cmd := exec.Command(app, arg0, command) + // stdout, _ := cmd.StdoutPipe() + // stderr, _ := cmd.StderrPipe() + + cmd.Start() + + // go func() { + // scanner := bufio.NewScanner(stdout) + // for scanner.Scan() { + // m := scanner.Text() + // fmt.Println(m) + // } + // }() + + // go func() { + // scanner := bufio.NewScanner(stderr) + // for scanner.Scan() { + // m := scanner.Text() + // fmt.Println(m) + // } + // }() + + // return cmd +} diff --git a/src/cmd/cmd.go b/src/cmd/cmd.go index deac2cc..1d619dd 100644 --- a/src/cmd/cmd.go +++ b/src/cmd/cmd.go @@ -1,57 +1 @@ package cmd - -import ( - "bufio" - "fmt" - "log" - "os/exec" -) - -// Run _ -func Run(command string) *exec.Cmd { - - app := "sh" - arg0 := "-c" - - cmd := exec.Command(app, arg0, command) - stdout, _ := cmd.StdoutPipe() - stderr, _ := cmd.StderrPipe() - - cmd.Start() - - go func() { - scanner := bufio.NewScanner(stdout) - for scanner.Scan() { - m := scanner.Text() - fmt.Println(m) - } - }() - - go func() { - scanner := bufio.NewScanner(stderr) - for scanner.Scan() { - m := scanner.Text() - fmt.Println(m) - } - }() - - return cmd -} - -// Exec _ -func Exec(command string) string { - app := "sh" - arg0 := "-c" - - // cmd := exec.Command(app, arg0, command) - // stdout, _ := cmd.StdoutPipe() - // stderr, _ := cmd.StderrPipe() - - // cmd.Run() - - out, err := exec.Command(app, arg0, command).Output() - if err != nil { - log.Fatal(err) - } - return string(out) -} diff --git a/src/cmd/exec.go b/src/cmd/exec.go new file mode 100644 index 0000000..cbdb28c --- /dev/null +++ b/src/cmd/exec.go @@ -0,0 +1,18 @@ +package cmd + +import ( + "log" + "os/exec" +) + +// Exec runs the command and returns the output +func Exec(command string) string { + app := "sh" + arg0 := "-c" + + out, err := exec.Command(app, arg0, command).Output() + if err != nil { + log.Fatal(err) + } + return string(out) +} diff --git a/src/cmd/run.go b/src/cmd/run.go new file mode 100644 index 0000000..be21ecf --- /dev/null +++ b/src/cmd/run.go @@ -0,0 +1,40 @@ +package cmd + +import ( + "bufio" + "fmt" + "os/exec" +) + +// Run starts the command in a new thread, +// writes out stdout and stderr outputs +// and returns the command object +func Run(command string) *exec.Cmd { + + app := "sh" + arg0 := "-c" + + cmd := exec.Command(app, arg0, command) + stdout, _ := cmd.StdoutPipe() + stderr, _ := cmd.StderrPipe() + + cmd.Start() + + go func() { + scanner := bufio.NewScanner(stdout) + for scanner.Scan() { + m := scanner.Text() + fmt.Println(m) + } + }() + + go func() { + scanner := bufio.NewScanner(stderr) + for scanner.Scan() { + m := scanner.Text() + fmt.Println(m) + } + }() + + return cmd +}