nutkins 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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