Move "copy" to daemon/copy.go

This is part of an effort to break apart the deprecated server/ package

Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
This commit is contained in:
Solomon Hykes
2014-08-01 14:24:41 -04:00
committed by Tibor Vass
parent cc39d579f5
commit 06229a4b76
4 changed files with 53 additions and 45 deletions
+33
View File
@@ -0,0 +1,33 @@
package daemon
import (
"io"
"github.com/docker/docker/engine"
)
func (daemon *Daemon) ContainerCopy(job *engine.Job) engine.Status {
if len(job.Args) != 2 {
return job.Errorf("Usage: %s CONTAINER RESOURCE\n", job.Name)
}
var (
name = job.Args[0]
resource = job.Args[1]
)
if container := daemon.Get(name); container != nil {
data, err := container.Copy(resource)
if err != nil {
return job.Error(err)
}
defer data.Close()
if _, err := io.Copy(job.Stdout, data); err != nil {
return job.Error(err)
}
return engine.StatusOK
}
return job.Errorf("No such container: %s", name)
}
+3
View File
@@ -152,6 +152,9 @@ func (daemon *Daemon) Install(eng *engine.Engine) error {
if err := eng.Register("delete", daemon.ContainerDestroy); err != nil {
return err
}
if err := eng.Register("container_copy", daemon.ContainerCopy); err != nil {
return err
}
return nil
}