bindeps 0.1.3 → 1.0.0
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 +4 -4
- data/bindeps.gemspec +2 -2
- data/lib/bindeps.rb +6 -19
- data/lib/bindeps/version.rb +1 -1
- data/lib/unpacker.rb +2 -2
- data/test/test_bindeps.rb +0 -45
- metadata +16 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 133fb10206978ebdb1caf2c391eea280bcfadead
|
4
|
+
data.tar.gz: 8fe29388274cc23ad9d8511cf6bde24e6f082dc3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3bbca5560b97ee4f77906a24e541bb1d71041eb19a8fe4011074c77f1e4758b4c57198c01c742258da704fdfcc509cdb4223bfc73bd703048c47357113926a9b
|
7
|
+
data.tar.gz: 8bce1184e71c3d7b8a60338f18ccc2181ecbb835e46a3ffd738867203ae3bb604160a849be8677f9a0515d891cea30ad6712287df02750f44ecff6248d422a27
|
data/bindeps.gemspec
CHANGED
@@ -18,8 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_dependency '
|
22
|
-
spec.add_dependency
|
21
|
+
spec.add_dependency 'fixwhich', '~> 1.0', '>= 1.0.2'
|
22
|
+
spec.add_dependency 'downloadr', '~> 0.0', '>= 0.0.41'
|
23
23
|
|
24
24
|
spec.add_development_dependency "bundler", "~> 1.3"
|
25
25
|
spec.add_development_dependency 'rake', '~> 10.3', '>= 10.3.2'
|
data/lib/bindeps.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
require "bindeps/version"
|
2
2
|
require "unpacker"
|
3
|
-
require "
|
3
|
+
require "fixwhich"
|
4
4
|
require "tmpdir"
|
5
5
|
require "yaml"
|
6
|
+
require "downloadr"
|
6
7
|
|
7
8
|
module Bindeps
|
8
9
|
|
@@ -53,6 +54,8 @@ module Bindeps
|
|
53
54
|
|
54
55
|
attr_reader :name, :version, :binaries
|
55
56
|
|
57
|
+
include Which
|
58
|
+
|
56
59
|
def initialize(name, binaries, versionconfig, urlconfig, unpack)
|
57
60
|
@name = name
|
58
61
|
unless binaries.is_a? Array
|
@@ -92,23 +95,7 @@ module Bindeps
|
|
92
95
|
end
|
93
96
|
|
94
97
|
def download
|
95
|
-
|
96
|
-
wget = which('wget').first
|
97
|
-
if curl
|
98
|
-
cmd = "#{curl} -O -J -L #{@url}"
|
99
|
-
stdout, stderr, status = Open3.capture3 cmd
|
100
|
-
elsif wget
|
101
|
-
cmd = "#{wget} #{@url}"
|
102
|
-
stdout, stderr, status = Open3.capture3 cmd
|
103
|
-
else
|
104
|
-
msg = "You don't have curl or wget?! What kind of computer is "
|
105
|
-
msg << "this?! Windows?! BeOS? OS/2?"
|
106
|
-
raise DownloadFailedError.new(msg)
|
107
|
-
end
|
108
|
-
if !status.success?
|
109
|
-
raise DownloadFailedError,
|
110
|
-
"download of #{@url} for #{@name} failed:\n#{stdout}\n#{stderr}"
|
111
|
-
end
|
98
|
+
Downloadr::HTTP.download @url
|
112
99
|
end
|
113
100
|
|
114
101
|
def unpack
|
@@ -139,7 +126,7 @@ module Bindeps
|
|
139
126
|
end
|
140
127
|
|
141
128
|
def installed? bin
|
142
|
-
path =
|
129
|
+
path = which(bin)
|
143
130
|
if path
|
144
131
|
ret = `#{@version_cmd} 2>&1`.split("\n").map{ |l| l.strip }.join('|')
|
145
132
|
if ret && (/#{@version}/ =~ ret)
|
data/lib/bindeps/version.rb
CHANGED
data/lib/unpacker.rb
CHANGED
data/test/test_bindeps.rb
CHANGED
@@ -90,51 +90,6 @@ class TestBindeps < Test::Unit::TestCase
|
|
90
90
|
Gem::Platform.local.cpu = original_cpu
|
91
91
|
end
|
92
92
|
|
93
|
-
should "fallback to wget when curl is not available" do
|
94
|
-
# set up fake OS
|
95
|
-
original_os = RbConfig::CONFIG['host_os']
|
96
|
-
RbConfig::CONFIG['host_os'] = 'solaris'
|
97
|
-
original_cpu = Gem::Platform.local.cpu
|
98
|
-
Gem::Platform.local.cpu = 'x86_64'
|
99
|
-
# create config
|
100
|
-
urlconfig = { '64bit' => { 'unix' => 'url' } }
|
101
|
-
versionconfig = { 'number' => 1, 'command' => 'getversion' }
|
102
|
-
|
103
|
-
# with only wget in the path
|
104
|
-
original_path = ENV['PATH']
|
105
|
-
ENV['PATH'] = File.expand_path(@data_dir)
|
106
|
-
assert_nothing_raised Bindeps::DownloadFailedError do
|
107
|
-
dep = Bindeps::Dependency.new('test', ['binary'],
|
108
|
-
versionconfig, urlconfig, false)
|
109
|
-
dep.download
|
110
|
-
end
|
111
|
-
|
112
|
-
# with neither curl nor wget
|
113
|
-
ENV['PATH'] = ""
|
114
|
-
assert_raise Bindeps::DownloadFailedError do
|
115
|
-
dep = Bindeps::Dependency.new('test', ['binary'],
|
116
|
-
versionconfig, urlconfig, false)
|
117
|
-
dep.download
|
118
|
-
end
|
119
|
-
|
120
|
-
# restore path
|
121
|
-
ENV['PATH'] = original_path
|
122
|
-
# when download doesn't actually work
|
123
|
-
assert_raise Bindeps::DownloadFailedError do
|
124
|
-
dep = Bindeps::Dependency.new('test', ['binary'],
|
125
|
-
versionconfig, urlconfig, false)
|
126
|
-
dep.download
|
127
|
-
end
|
128
|
-
|
129
|
-
# restore real OS
|
130
|
-
RbConfig::CONFIG['host_os'] = original_os
|
131
|
-
Gem::Platform.local.cpu = original_cpu
|
132
|
-
end
|
133
|
-
|
134
|
-
should "fail when no downloader is available" do
|
135
|
-
|
136
|
-
end
|
137
|
-
|
138
93
|
should "initialize" do
|
139
94
|
assert_nothing_raised do
|
140
95
|
Bindeps::Dependency.new(
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bindeps
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Smith-Unna
|
@@ -9,42 +9,48 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-12-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: fixwhich
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
20
|
+
version: '1.0'
|
21
21
|
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version:
|
23
|
+
version: 1.0.2
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: !ruby/object:Gem::Requirement
|
27
27
|
requirements:
|
28
28
|
- - "~>"
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
version: '
|
30
|
+
version: '1.0'
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 1.0.2
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
|
-
name:
|
35
|
+
name: downloadr
|
36
36
|
requirement: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.0'
|
38
41
|
- - ">="
|
39
42
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
43
|
+
version: 0.0.41
|
41
44
|
type: :runtime
|
42
45
|
prerelease: false
|
43
46
|
version_requirements: !ruby/object:Gem::Requirement
|
44
47
|
requirements:
|
48
|
+
- - "~>"
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: '0.0'
|
45
51
|
- - ">="
|
46
52
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
53
|
+
version: 0.0.41
|
48
54
|
- !ruby/object:Gem::Dependency
|
49
55
|
name: bundler
|
50
56
|
requirement: !ruby/object:Gem::Requirement
|