mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
engine.Sender and engine.Receiver support stdin
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
This commit is contained in:
parent
3c1d5ca33e
commit
b63b98ee27
1 changed files with 11 additions and 0 deletions
|
@ -46,6 +46,12 @@ func (s *Sender) Handle(job *Job) Status {
|
|||
tasks.Done()
|
||||
return nil
|
||||
})
|
||||
r.NewRoute().KeyStartsWith("cmd", "log", "stdin").HasAttachment().Handler(func(p []byte, stdin *os.File) error {
|
||||
tasks.Add(1)
|
||||
io.Copy(stdin, job.Stdin)
|
||||
tasks.Done()
|
||||
return nil
|
||||
})
|
||||
var status int
|
||||
r.NewRoute().KeyStartsWith("cmd", "status").Handler(func(p []byte, f *os.File) error {
|
||||
cmd := data.Message(p).Get("cmd")
|
||||
|
@ -96,6 +102,11 @@ func (rcv *Receiver) Run() error {
|
|||
return err
|
||||
}
|
||||
job.Stderr.Add(stderr)
|
||||
stdin, err := beam.SendPipe(peer, data.Empty().Set("cmd", "log", "stdin").Bytes())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
job.Stdin.Add(stdin)
|
||||
// ignore error because we pass the raw status
|
||||
job.Run()
|
||||
err = peer.Send(data.Empty().Set("cmd", "status", fmt.Sprintf("%d", job.status)).Bytes(), nil)
|
||||
|
|
Loading…
Add table
Reference in a new issue