bindeps 0.0.7 → 0.0.8
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/lib/bindeps/version.rb +1 -1
- data/lib/bindeps.rb +20 -10
- data/test/data/neverinstalled.yaml +15 -0
- data/test/test_bindeps.rb +7 -11
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 09a22034ecfb472bbf143443a4241f92e1bcd9a9
|
4
|
+
data.tar.gz: e867e4eaec47e2c02c26916191daef168ef2c55d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7de37d58bb9a9b14f6767a7d34ad025ecad3077269d85bd832c988345b6672e3030f6fd70219d4b411604d1ba2b27db40bc9b907c2b49668891522e9766deafb
|
7
|
+
data.tar.gz: a9f18935a0be780f5df054e5a5570a21bfe5594f724cb52ec46af27ba557f6eb17e7c241f2bf32e76f89e86542bceb8a3027eebb06a52f009a70f84789dd0ed3
|
data/lib/bindeps/version.rb
CHANGED
data/lib/bindeps.rb
CHANGED
@@ -25,6 +25,26 @@ module Bindeps
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
+
# Check whether all dependencies are installed. Return an array of missing
|
29
|
+
# dependencies.
|
30
|
+
def self.missing dependencies
|
31
|
+
if dependencies.is_a? String
|
32
|
+
dependencies = YAML.load_file dependencies
|
33
|
+
end
|
34
|
+
tmpdir = Dir.mktmpdir
|
35
|
+
missing = []
|
36
|
+
Dir.chdir(tmpdir) do
|
37
|
+
dependencies.each_pair do |name, config|
|
38
|
+
d = Dependency.new(name,
|
39
|
+
config['binaries'],
|
40
|
+
config['version'],
|
41
|
+
config['url'])
|
42
|
+
missing << name unless d.all_installed?
|
43
|
+
end
|
44
|
+
end
|
45
|
+
missing
|
46
|
+
end
|
47
|
+
|
28
48
|
class Dependency
|
29
49
|
|
30
50
|
def initialize(name, binaries, versionconfig, urlconfig)
|
@@ -41,8 +61,6 @@ module Bindeps
|
|
41
61
|
|
42
62
|
def install_missing
|
43
63
|
unless all_installed?
|
44
|
-
puts "binary dependency #{@name} not installed"
|
45
|
-
puts "it will now be downloaded and installed"
|
46
64
|
download
|
47
65
|
unpack
|
48
66
|
end
|
@@ -89,7 +107,6 @@ module Bindeps
|
|
89
107
|
def all_installed?
|
90
108
|
@binaries.each do |bin|
|
91
109
|
unless installed? bin
|
92
|
-
puts "required binary #{bin} is not installed"
|
93
110
|
return false
|
94
111
|
end
|
95
112
|
end
|
@@ -102,20 +119,13 @@ module Bindeps
|
|
102
119
|
ret = `#{@version_cmd} 2>&1`.split("\n").map{ |l| l.strip }.join('|')
|
103
120
|
if ret && (/#{@version}/ =~ ret)
|
104
121
|
return path
|
105
|
-
else
|
106
|
-
puts "installed version should have been #{@version}"
|
107
|
-
puts "but it was:"
|
108
|
-
puts ret
|
109
122
|
end
|
110
|
-
else
|
111
|
-
puts "binary #{bin} is not in the PATH"
|
112
123
|
end
|
113
124
|
false
|
114
125
|
end
|
115
126
|
|
116
127
|
def install bin
|
117
128
|
bindir = File.join(ENV['GEM_HOME'], 'bin')
|
118
|
-
puts "installing #{bin} to #{bindir}"
|
119
129
|
FileUtils.cp(bin, File.join(bindir, File.basename(bin)))
|
120
130
|
end
|
121
131
|
|
@@ -0,0 +1,15 @@
|
|
1
|
+
neverinstalled:
|
2
|
+
binaries:
|
3
|
+
- neverinstalled
|
4
|
+
version:
|
5
|
+
number: 2.0.1.ERR
|
6
|
+
command: fakebin3
|
7
|
+
url:
|
8
|
+
64bit:
|
9
|
+
macosx: https://github.com/Blahah/bindeps/raw/master/test/data/fakebin3.tgz
|
10
|
+
linux: https://github.com/Blahah/bindeps/raw/master/test/data/fakebin3.tgz
|
11
|
+
unix: https://github.com/Blahah/bindeps/raw/master/test/data/fakebin3.tgz
|
12
|
+
32bit:
|
13
|
+
macosx: https://github.com/Blahah/bindeps/raw/master/test/data/fakebin3.tgz
|
14
|
+
linux: https://github.com/Blahah/bindeps/raw/master/test/data/fakebin3.tgz
|
15
|
+
unix: https://github.com/Blahah/bindeps/raw/master/test/data/fakebin3.tgz
|
data/test/test_bindeps.rb
CHANGED
@@ -9,23 +9,19 @@ class TestBinDeps < Test::Unit::TestCase
|
|
9
9
|
@data_dir = File.join(test_dir, 'data')
|
10
10
|
end
|
11
11
|
|
12
|
-
# teardown do
|
13
|
-
#
|
14
|
-
# end
|
15
|
-
#
|
16
|
-
# should "check if dependencies are installed" do
|
17
|
-
#
|
18
|
-
# end
|
19
|
-
#
|
20
|
-
# should "download and unpack dependencies" do
|
21
|
-
# end
|
22
|
-
|
23
12
|
should "identify and install missing dependencies" do
|
24
13
|
test_yaml = File.join(@data_dir, 'fakebin.yaml')
|
25
14
|
Bindeps.require test_yaml
|
26
15
|
assert_equal 'success', `fakebin`.strip
|
27
16
|
end
|
28
17
|
|
18
|
+
should "identify dependencies that are missing" do
|
19
|
+
test_yaml = File.join(@data_dir, 'neverinstalled.yaml')
|
20
|
+
missing = Bindeps.missing test_yaml
|
21
|
+
assert_equal 1, missing.length
|
22
|
+
assert_equal 'neverinstalled', missing.first
|
23
|
+
end
|
24
|
+
|
29
25
|
should "handle case where version is not on first line" do
|
30
26
|
test_yaml = File.join(@data_dir, 'fakebin2.yaml')
|
31
27
|
# install fakebin2
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bindeps
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Smith-Unna
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: which_works
|
@@ -149,6 +149,7 @@ files:
|
|
149
149
|
- test/data/fakebin3
|
150
150
|
- test/data/fakebin3.tgz
|
151
151
|
- test/data/fakebin3.yaml
|
152
|
+
- test/data/neverinstalled.yaml
|
152
153
|
- test/helper.rb
|
153
154
|
- test/test_bindeps.rb
|
154
155
|
homepage: https://github.com/Blahah/bindeps
|
@@ -171,7 +172,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
171
172
|
version: '0'
|
172
173
|
requirements: []
|
173
174
|
rubyforge_project:
|
174
|
-
rubygems_version: 2.
|
175
|
+
rubygems_version: 2.1.4
|
175
176
|
signing_key:
|
176
177
|
specification_version: 4
|
177
178
|
summary: binary dependency management for ruby gems
|
@@ -186,6 +187,7 @@ test_files:
|
|
186
187
|
- test/data/fakebin3
|
187
188
|
- test/data/fakebin3.tgz
|
188
189
|
- test/data/fakebin3.yaml
|
190
|
+
- test/data/neverinstalled.yaml
|
189
191
|
- test/helper.rb
|
190
192
|
- test/test_bindeps.rb
|
191
193
|
has_rdoc:
|