github.com/walkingsparrow/docker@v1.4.2-0.20151218153551-b708a2249bfa/api/client/load.go (about) 1 package client 2 3 import ( 4 "io" 5 "os" 6 7 Cli "github.com/docker/docker/cli" 8 flag "github.com/docker/docker/pkg/mflag" 9 ) 10 11 // CmdLoad loads an image from a tar archive. 12 // 13 // The tar archive is read from STDIN by default, or from a tar archive file. 14 // 15 // Usage: docker load [OPTIONS] 16 func (cli *DockerCli) CmdLoad(args ...string) error { 17 cmd := Cli.Subcmd("load", nil, Cli.DockerCommands["load"].Description, true) 18 infile := cmd.String([]string{"i", "-input"}, "", "Read from a tar archive file, instead of STDIN") 19 cmd.Require(flag.Exact, 0) 20 cmd.ParseFlags(args, true) 21 22 var input io.Reader = cli.in 23 if *infile != "" { 24 file, err := os.Open(*infile) 25 if err != nil { 26 return err 27 } 28 defer file.Close() 29 input = file 30 } 31 32 responseBody, err := cli.client.ImageLoad(input) 33 if err != nil { 34 return err 35 } 36 defer responseBody.Close() 37 38 _, err = io.Copy(cli.out, responseBody) 39 return err 40 }