Now the output from programs is collected and sent to STDOUT.

master
Zed A. Shaw 2 days ago
parent 1ba7fc14ff
commit 4fe90283d3
  1. 2
      .ozai.json
  2. 23
      main.go
  3. 6
      tools/cmd/tester/main.go

@ -3,7 +3,7 @@
"tester1": {
"Name": "tester",
"Command": "tester",
"Args": ["-count", "2", "-id", "1"]
"Args": ["-count", "10", "-id", "1"]
},
"tester2": {
"Name": "tester",

@ -4,11 +4,23 @@ import (
"fmt"
"os/exec"
"log"
"io"
"os"
"errors"
"sync"
"lcthw.dev/learn-code-the-hard-way/ozai/config"
)
func LaunchLogger(in io.Reader, out io.Writer, err error) {
if err != nil { log.Fatal(err) }
go func() {
if _, err := io.Copy(out, in); err != nil {
log.Fatal(err)
}
}()
}
func main() {
config.Load()
@ -30,14 +42,15 @@ func main() {
cmd.Err = nil
}
out, err := cmd.CombinedOutput()
stderr, err := cmd.StderrPipe();
LaunchLogger(stderr, os.Stdout, err)
if err != nil {
fmt.Printf("%s\n", out)
log.Fatal(err)
}
stdout, err := cmd.StdoutPipe();
LaunchLogger(stdout, os.Stdout, err)
cmd.Run()
fmt.Println("WAITING for", name)
cmd.Wait()
fmt.Println("PROC", name, "EXITED SEND QUIT")
}

@ -7,12 +7,14 @@ import (
)
func main() {
count := flag.Int("count", 10, "Seconds to wait")
id := flag.Int("id", 1, "Tester ID to use.")
flag.Parse()
fmt.Println(">>> TESTER STARTS, id=", *id, "count=", *count)
for i := 0; i < *count; i++ {
time.Sleep(1 * time.Second)
fmt.Println("TICK", *id)
fmt.Println("TESTER #", *id)
}
}

Loading…
Cancel
Save