| 117 | } |
| 118 | |
| 119 | func tarWriteFile(w *tar.Writer, name string, file ReadonlyFile) error { |
| 120 | stat, err := file.Stat() |
| 121 | if err != nil { |
| 122 | return errors.WithMessage(err, "stat "+name) |
| 123 | } |
| 124 | if err := w.WriteHeader(&tar.Header{ |
| 125 | Name: name, |
| 126 | Mode: 0600, |
| 127 | Size: stat.Size(), |
| 128 | }); err != nil { |
| 129 | return errors.WithMessage(err, "write header "+name) |
| 130 | } |
| 131 | if _, err := io.Copy(w, file); err != nil { |
| 132 | return errors.WithMessage(err, "write "+name) |
| 133 | } |
| 134 | return nil |
| 135 | } |
| 136 | |
| 137 | func tarWriteBytes(w *tar.Writer, name string, data []byte) error { |
| 138 | if err := w.WriteHeader(&tar.Header{ |