// DownloadTempWithChecksum is a DownloadTemp with checksum verification // // Temporary file would be already removed, so no need to cleanup func DownloadTempWithChecksum(downloader aptly.Downloader, url string, expected utils.ChecksumInfo, ignoreMismatch bool) (*os.File, error) { tempdir, err := ioutil.TempDir(os.TempDir(), "aptly") if err != nil { return nil, err } defer os.RemoveAll(tempdir) tempfile := filepath.Join(tempdir, "buffer") if expected.Size != -1 && downloader.GetProgress() != nil { downloader.GetProgress().InitBar(expected.Size, true) defer downloader.GetProgress().ShutdownBar() } ch := make(chan error, 1) downloader.DownloadWithChecksum(url, tempfile, ch, expected, ignoreMismatch) err = <-ch if err != nil { return nil, err } file, err := os.Open(tempfile) if err != nil { return nil, err } return file, nil }