// forallFilenames iterates call() over all (relative) file paths // from packages in db. func forallFilenames(db *alpm.Db, call func(string) error) error { return db.PkgCache().ForEach(func(pkg alpm.Package) error { for _, file := range pkg.Files() { er := call(file.Name) if er != nil { return er } } return nil }) }