internal/download: remove urlEntry

This commit is contained in:
Felix Lange 2025-05-14 10:09:02 +02:00
parent 37f94cbccd
commit 4aa7b8d029

View file

@ -45,14 +45,10 @@ type versionEntry struct {
version string version string
} }
type urlEntry struct {
url *url.URL
}
type hashEntry struct { type hashEntry struct {
hash string hash string
file string file string
u *urlEntry url *url.URL
} }
// MustLoadChecksums loads a file containing checksums. // MustLoadChecksums loads a file containing checksums.
@ -73,7 +69,7 @@ func ParseChecksums(input []byte) (*ChecksumDB, error) {
var ( var (
csdb = new(ChecksumDB) csdb = new(ChecksumDB)
rd = bytes.NewBuffer(input) rd = bytes.NewBuffer(input)
lastURL *urlEntry lastURL *url.URL
) )
for lineNum := 1; ; lineNum++ { for lineNum := 1; ; lineNum++ {
line, err := rd.ReadString('\n') line, err := rd.ReadString('\n')
@ -106,7 +102,7 @@ func ParseChecksums(input []byte) (*ChecksumDB, error) {
if err != nil { if err != nil {
return nil, fmt.Errorf("line %d: invalid URL: %v", lineNum, err) return nil, fmt.Errorf("line %d: invalid URL: %v", lineNum, err)
} }
lastURL = &urlEntry{u} lastURL = u
} }
default: default:
@ -199,10 +195,10 @@ func (db *ChecksumDB) FindVersion(tool string) (string, error) {
func (db *ChecksumDB) FindURL(basename string) (string, error) { func (db *ChecksumDB) FindURL(basename string) (string, error) {
for _, e := range db.hashes { for _, e := range db.hashes {
if e.file == basename { if e.file == basename {
if e.u == nil { if e.url == nil {
return "", fmt.Errorf("file %q has no URL defined", e.file) return "", fmt.Errorf("file %q has no URL defined", e.file)
} }
return e.u.url.JoinPath(e.file).String(), nil return e.url.JoinPath(e.file).String(), nil
} }
} }
return "", fmt.Errorf("file %q does not exist in checksum database", basename) return "", fmt.Errorf("file %q does not exist in checksum database", basename)
@ -215,11 +211,11 @@ func (db *ChecksumDB) VerifyAll() {
tmp = os.TempDir() tmp = os.TempDir()
) )
for _, e := range db.hashes { for _, e := range db.hashes {
if e.u == nil { if e.url == nil {
log.Printf("Skipping verification of %s: no URL defined in checksum database", e.file) log.Printf("Skipping verification of %s: no URL defined in checksum database", e.file)
continue continue
} }
url := e.u.url.JoinPath(e.file).String() url := e.url.JoinPath(e.file).String()
dst := filepath.Join(tmp, e.file) dst := filepath.Join(tmp, e.file)
if err := db.DownloadFile(url, dst); err != nil { if err := db.DownloadFile(url, dst); err != nil {
log.Print(err) log.Print(err)