func runSave(dockerCli *client.DockerCli, opts saveOptions) error { if opts.output == "" && dockerCli.Out().IsTerminal() { return errors.New("Cowardly refusing to save to a terminal. Use the -o flag or redirect.") } responseBody, err := dockerCli.Client().ImageSave(context.Background(), opts.images) if err != nil { return err } defer responseBody.Close() if opts.output == "" { _, err := io.Copy(dockerCli.Out(), responseBody) return err } return client.CopyToFile(opts.output, responseBody) }
func runExport(dockerCli *client.DockerCli, opts exportOptions) error { if opts.output == "" && dockerCli.IsTerminalOut() { return errors.New("Cowardly refusing to save to a terminal. Use the -o flag or redirect.") } clnt := dockerCli.Client() responseBody, err := clnt.ContainerExport(context.Background(), opts.container) if err != nil { return err } defer responseBody.Close() if opts.output == "" { _, err := io.Copy(dockerCli.Out(), responseBody) return err } return client.CopyToFile(opts.output, responseBody) }