nutkins 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 69bb973c533e9aa5b1228788213f18b902be142a
4
- data.tar.gz: 00a008042f005a7e3e6dcec39d06415f06e1185b
3
+ metadata.gz: 83242b63a7c1ef60f2c5fbd90623d60cfe326ef7
4
+ data.tar.gz: 3c4c8df16995ab859d0d05770bb97f096226b309
5
5
  SHA512:
6
- metadata.gz: 25486963c986b68e22e3ccf19b44920c5fa8b3622ce39c224aed9242edc5c2609a1f960b9a24a65048e0da0e6798e1b105e1c329d8f9f527dbcf144635cf8a76
7
- data.tar.gz: 793858699df13dd93ae3e49c11a278aacbd673cfe7adf73be850f27b7c68f057f2445ee6482f1e813b18f74f3d2745bce46be232a5e72f7375c0310f68c4cdbf
6
+ metadata.gz: 1b32d1f53827c2ab698e47b04ea9f8d5c217ecc26fe31439bf9e0fbe4054e4ff9cb224f4725cc4d7c8d2cee17c9761d9352640e8bfc081be1ce68778a2338b97
7
+ data.tar.gz: b9caf18e5934f60a541de8cf406a0cdedbd75a2123505fdfb02591b71f35b0736967e372f00d8b7d642fd1040dae0271310415398c74e20105a2ea2c69af0d20
@@ -1,3 +1,7 @@
1
+ require 'uri'
2
+ require 'zlib'
3
+ require 'rubygems/package'
4
+
1
5
  module Nutkins::Download
2
6
  def self.download_file url, output
3
7
  orig_url = url
@@ -23,10 +27,32 @@ module Nutkins::Download
23
27
  source = resource["source"]
24
28
  dest = File.join(img_dir, resource["dest"])
25
29
  unless File.exists? dest
26
- FileUtils.mkdir_p File.dirname(dest)
27
- print "downloading #{source}"
28
- download_file source, dest
29
- puts " - done"
30
+ extract = resource["extract"]
31
+ if extract
32
+ uri = URI.parse(source)
33
+ Dir.mktmpdir do |tmpdir|
34
+ dl_dest = File.join tmpdir, File.basename(uri.path)
35
+ print "downloading #{source} to #{dl_dest}"
36
+ download_file source, dl_dest
37
+ puts " - done"
38
+ File.open(dl_dest, "rb") do |file|
39
+ Zlib::GzipReader.wrap(file) do |gz|
40
+ Gem::Package::TarReader.new(gz) do |tar|
41
+ matching = tar.detect { |entry| File.fnmatch(extract, entry.full_name) }
42
+ raise "could not find file matching #{extract} in #{dl_dest}" unless matching
43
+ FileUtils.mkdir_p File.dirname(dest)
44
+ File.write(dest, matching.read)
45
+ end
46
+ end
47
+ end
48
+ end
49
+ else
50
+ FileUtils.mkdir_p File.dirname(dest)
51
+ print "downloading #{source} to #{dest}"
52
+ download_file source, dest
53
+ puts " - done"
54
+ end
55
+
30
56
  mode = resource["mode"]
31
57
  File.chmod(mode, dest) if mode
32
58
  end
@@ -1,3 +1,3 @@
1
1
  module Nutkins
2
- VERSION = "0.5.0"
2
+ VERSION = "0.5.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nutkins
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Pike