catch and handle errors in src/cmd/moby

Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
This commit is contained in:
Riyaz Faizullabhoy
2017-04-10 13:16:17 -07:00
parent 3afe494ae9
commit 2fea805be1
7 changed files with 51 additions and 16 deletions

View File

@@ -79,7 +79,9 @@ func tarPrefix(path string, tw *tar.Writer) error {
Mode: 0755,
Typeflag: tar.TypeDir,
}
tw.WriteHeader(hdr)
if err := tw.WriteHeader(hdr); err != nil {
return err
}
mkdir = mkdir + "/"
}
return nil
@@ -118,21 +120,37 @@ func imageTar(image, prefix string, tw *tar.Writer) error {
}
if exclude[hdr.Name] {
log.Debugf("image tar: %s %s exclude %s", image, prefix, hdr.Name)
io.Copy(ioutil.Discard, tr)
_, err = io.Copy(ioutil.Discard, tr)
if err != nil {
return err
}
} else if replace[hdr.Name] != "" {
contents := replace[hdr.Name]
hdr.Size = int64(len(contents))
hdr.Name = prefix + hdr.Name
log.Debugf("image tar: %s %s add %s", image, prefix, hdr.Name)
tw.WriteHeader(hdr)
if err := tw.WriteHeader(hdr); err != nil {
return err
}
buf := bytes.NewBufferString(contents)
io.Copy(tw, buf)
io.Copy(ioutil.Discard, tr)
_, err = io.Copy(tw, buf)
if err != nil {
return err
}
_, err = io.Copy(ioutil.Discard, tr)
if err != nil {
return err
}
} else {
log.Debugf("image tar: %s %s add %s", image, prefix, hdr.Name)
hdr.Name = prefix + hdr.Name
tw.WriteHeader(hdr)
io.Copy(tw, tr)
if err := tw.WriteHeader(hdr); err != nil {
return err
}
_, err = io.Copy(tw, tr)
if err != nil {
return err
}
}
}
err = tw.Close()