MCPcopy
hub / github.com/wal-g/wal-g / PackFileIntoTar

Method PackFileIntoTar

internal/tar_ball_file_packer.go:47–76  ·  view source on GitHub ↗
(cfi *ComposeFileInfo, tarBall TarBall)

Source from the content-addressed store, hash-verified

45}
46
47func (p *RegularTarBallFilePacker) PackFileIntoTar(cfi *ComposeFileInfo, tarBall TarBall) error {
48 fileReadCloser, err := StartReadingFile(cfi.Header, cfi.FileInfo, cfi.Path)
49 if err != nil {
50 if !p.skipFileNotExists {
51 return err
52 }
53
54 switch err.(type) {
55 case FileNotExistError:
56 // File was deleted before opening.
57 // We should ignore file here as if it did not exist.
58 tracelog.WarningLogger.Println(err)
59 return nil
60 default:
61 return err
62 }
63 }
64 p.files.AddFile(cfi.Header, cfi.FileInfo, cfi.IsIncremented)
65
66 defer utility.LoggedClose(fileReadCloser, "")
67 packedFileSize, err := PackFileTo(tarBall, cfi.Header, fileReadCloser)
68
69 if err != nil {
70 return errors.Wrap(err, "PackFileIntoTar: operation failed")
71 }
72 if packedFileSize != cfi.Header.Size {
73 return newTarSizeError(packedFileSize, cfi.Header.Size)
74 }
75 return nil
76}
77
78// TODO : unit tests
79func StartReadingFile(fileInfoHeader *tar.Header, info os.FileInfo, path string) (io.ReadSeekCloser, error) {

Callers

nothing calls this directly

Calls 6

LoggedCloseFunction · 0.92
StartReadingFileFunction · 0.85
PackFileToFunction · 0.85
PrintlnMethod · 0.80
newTarSizeErrorFunction · 0.70
AddFileMethod · 0.65

Tested by

no test coverage detected