elastic / elastic/logstash-devutils
Can't extract the ASN database from its tar.gz file
- Dominant language
- Ruby
- Stars
- 17
- Forks
- 27
- Avg merge
- 4d 21h
- Merged PRs (30d)
- 1
Description
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:
* the `gsub` at 166 turns `GeoLite2-ASN_20170620/GeoLite2-ASN.mmdb` into `_20170620/.mmdb` which won't match anything. A `sub` would do but it's not a general solution.
* the order or the `include?` is wrong and should be reversed (the entry includes the files)
Fix: replace lines 166 and 167 with
```
candidate = entry.full_name.split("/").last
next unless candidate.include?(file['files'])
out = candidate
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.