Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
| ... | ... |
@@ -46,6 +46,12 @@ func (s *Sender) Handle(job *Job) Status {
|
| 46 | 46 |
tasks.Done() |
| 47 | 47 |
return nil |
| 48 | 48 |
}) |
| 49 |
+ r.NewRoute().KeyStartsWith("cmd", "log", "stdin").HasAttachment().Handler(func(p []byte, stdin *os.File) error {
|
|
| 50 |
+ tasks.Add(1) |
|
| 51 |
+ io.Copy(stdin, job.Stdin) |
|
| 52 |
+ tasks.Done() |
|
| 53 |
+ return nil |
|
| 54 |
+ }) |
|
| 49 | 55 |
var status int |
| 50 | 56 |
r.NewRoute().KeyStartsWith("cmd", "status").Handler(func(p []byte, f *os.File) error {
|
| 51 | 57 |
cmd := data.Message(p).Get("cmd")
|
| ... | ... |
@@ -96,6 +102,11 @@ func (rcv *Receiver) Run() error {
|
| 96 | 96 |
return err |
| 97 | 97 |
} |
| 98 | 98 |
job.Stderr.Add(stderr) |
| 99 |
+ stdin, err := beam.SendPipe(peer, data.Empty().Set("cmd", "log", "stdin").Bytes())
|
|
| 100 |
+ if err != nil {
|
|
| 101 |
+ return err |
|
| 102 |
+ } |
|
| 103 |
+ job.Stdin.Add(stdin) |
|
| 99 | 104 |
// ignore error because we pass the raw status |
| 100 | 105 |
job.Run() |
| 101 | 106 |
err = peer.Send(data.Empty().Set("cmd", "status", fmt.Sprintf("%d", job.status)).Bytes(), nil)
|