Add support for multiple backends piped together

Docker-DCO-1.1-Signed-off-by: Ben Firshman <ben@firshman.co.uk> (github: bfirsh)
This commit is contained in:
Ben Firshman 2014-06-05 12:40:26 -07:00
parent a0874d7b1c
commit 3bb782faf1
1 changed files with 30 additions and 23 deletions

View File

@ -43,7 +43,9 @@ func cmdDaemon(c *cli.Context) {
fmt.Println(strings.Join(names, "\n")) fmt.Println(strings.Join(names, "\n"))
return return
} }
bName, bArgs, err := parseCmd(c.Args()[0]) var previousInstanceIn beam.Receiver
for _, backendArg := range c.Args() {
bName, bArgs, err := parseCmd(backendArg)
if err != nil { if err != nil {
Fatalf("parse: %v", err) Fatalf("parse: %v", err)
} }
@ -58,7 +60,7 @@ func cmdDaemon(c *cli.Context) {
Fatalf("spawn %s: %v\n", bName, err) Fatalf("spawn %s: %v\n", bName, err)
} }
fmt.Printf("---> Attaching\n") fmt.Printf("---> Attaching\n")
instanceIn, _, err := instance.Attach("") instanceIn, instanceOut, err := instance.Attach("")
if err != nil { if err != nil {
Fatalf("attach: %v", err) Fatalf("attach: %v", err)
} }
@ -66,7 +68,12 @@ func cmdDaemon(c *cli.Context) {
if err := instance.Start(); err != nil { if err := instance.Start(); err != nil {
Fatalf("start: %v", err) Fatalf("start: %v", err)
} }
_, err = beam.Copy(app, instanceIn) if previousInstanceIn != nil {
go beam.Copy(instanceOut, previousInstanceIn)
}
previousInstanceIn = instanceIn
}
_, err := beam.Copy(app, previousInstanceIn)
if err != nil { if err != nil {
Fatalf("copy: %v", err) Fatalf("copy: %v", err)
} }