FIX: MaxMind DB file not downloading correctly
Previously we had the ability to download a simple .gz file new changes mean we have a a tar.gz file that needs some levels of fiddling to get extracted correctly
This commit is contained in:
parent
9a6606dd30
commit
d0630ea6ee
|
@ -44,11 +44,33 @@ class DiscourseIpInfo
|
||||||
follow_redirect: false
|
follow_redirect: false
|
||||||
)
|
)
|
||||||
|
|
||||||
Discourse::Utils.execute_command("gunzip", gz_file.path)
|
filename = File.basename(gz_file.path)
|
||||||
|
|
||||||
|
dir = "#{Dir.tmpdir}/#{SecureRandom.hex}"
|
||||||
|
|
||||||
|
Discourse::Utils.execute_command(
|
||||||
|
"mkdir", "-p", dir
|
||||||
|
)
|
||||||
|
|
||||||
|
Discourse::Utils.execute_command(
|
||||||
|
"cp",
|
||||||
|
gz_file.path,
|
||||||
|
"#{dir}/#{filename}"
|
||||||
|
)
|
||||||
|
|
||||||
|
Discourse::Utils.execute_command(
|
||||||
|
"tar",
|
||||||
|
"-xzvf",
|
||||||
|
"#{dir}/#{filename}",
|
||||||
|
chdir: dir
|
||||||
|
)
|
||||||
|
|
||||||
|
Dir["#{dir}/**/*.mmdb"].each do |f|
|
||||||
|
FileUtils.mv(f, mmdb_path(name))
|
||||||
|
end
|
||||||
|
|
||||||
path = gz_file.path.sub(/\.gz\z/, "")
|
|
||||||
FileUtils.mv(path, mmdb_path(name))
|
|
||||||
ensure
|
ensure
|
||||||
|
FileUtils.rm_r(dir, force: true) if dir
|
||||||
gz_file&.close!
|
gz_file&.close!
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue