MCPcopy Create free account
hub / github.com/aptly-dev/aptly / Prepare

Method Prepare

deb/changes.go:116–158  ·  view source on GitHub ↗

Prepare creates temporary directory, copies file there and verifies checksums

()

Source from the content-addressed store, hash-verified

114
115// Prepare creates temporary directory, copies file there and verifies checksums
116func (c *Changes) Prepare() error {
117 var err error
118
119 for _, file := range c.Files {
120 if filepath.Dir(file.Filename) != "." {
121 return fmt.Errorf("file is not in the same folder as .changes file: %s", file.Filename)
122 }
123
124 file.Filename = filepath.Base(file.Filename)
125
126 err = utils.CopyFile(filepath.Join(c.BasePath, file.Filename), filepath.Join(c.TempDir, file.Filename))
127 if err != nil {
128 return err
129 }
130 }
131
132 for _, file := range c.Files {
133 var info utils.ChecksumInfo
134
135 info, err = utils.ChecksumsForFile(filepath.Join(c.TempDir, file.Filename))
136 if err != nil {
137 return err
138 }
139
140 if info.Size != file.Checksums.Size {
141 return fmt.Errorf("size mismatch: expected %v != obtained %v", file.Checksums.Size, info.Size)
142 }
143
144 if info.MD5 != file.Checksums.MD5 {
145 return fmt.Errorf("checksum mismatch MD5: expected %v != obtained %v", file.Checksums.MD5, info.MD5)
146 }
147
148 if info.SHA1 != file.Checksums.SHA1 {
149 return fmt.Errorf("checksum mismatch SHA1: expected %v != obtained %v", file.Checksums.SHA1, info.SHA1)
150 }
151
152 if info.SHA256 != file.Checksums.SHA256 {
153 return fmt.Errorf("checksum mismatch SHA256 expected %v != obtained %v", file.Checksums.SHA256, info.SHA256)
154 }
155 }
156
157 return nil
158}
159
160// Cleanup removes all temporary files
161func (c *Changes) Cleanup() error {

Callers 2

TestPrepareMethod · 0.95
ImportChangesFilesFunction · 0.95

Calls 2

CopyFileFunction · 0.92
ChecksumsForFileFunction · 0.92

Tested by 1

TestPrepareMethod · 0.76