elastic / logstash-devutils

An assortment of tooling/libraries to make Logstash core and plugin development and releasing a bit easier.
Apache License 2.0
17 stars 29 forks source link

Can't extract the ASN database from its tar.gz file #71

Open pmontrasio opened 7 years ago

pmontrasio commented 7 years ago

The gem can't extract the ASN database defined in this vendor.json (I hope I got the semantic of files right)

[
    {
        "url": "http://geolite.maxmind.com/download/geoip/database/GeoLite2-ASN.tar.gz",
        "files": "GeoLite2-ASN.mmdb",
        "sha1": "ce70f043bf71602a211cef3565560e17d3543609"
     }
 ]

It's because of these lines in lib/logstash/devutils/rake/vendor.rake.

    161    if download =~ /.tar.gz/
    162      prefix = download.gsub('.tar.gz', '').gsub('vendor/', '')
    163      # prefix GeoLite2-ASN
    164      untar(download) do |entry|
    165        if !file['files'].nil?
    166          next unless file['files'].include?(entry.full_name.gsub(prefix, ''))
    167          out = entry.full_name.split("/").last
    168        end
    169        File.join('vendor', out)
    170      end
        ...

Two problems here:

Fix: replace lines 166 and 167 with

              candidate = entry.full_name.split("/").last
              next unless candidate.include?(file['files'])
              out = candidate