jemmyw-sprinkle 0.2.3 → 0.2.4
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest.txt +4 -0
- data/lib/sprinkle/installers/pear.rb +25 -0
- data/lib/sprinkle/package.rb +9 -1
- data/lib/sprinkle/verifiers/pear.rb +15 -0
- data/lib/sprinkle/verifiers/user.rb +1 -1
- data/spec/sprinkle/installers/pear_spec.rb +48 -0
- data/spec/sprinkle/package_spec.rb +24 -2
- data/spec/sprinkle/verify_spec.rb +1 -1
- data/sprinkle.gemspec +2 -2
- metadata +4 -1
data/Manifest.txt
CHANGED
@@ -43,6 +43,7 @@ lib/sprinkle/extensions/string.rb
|
|
43
43
|
lib/sprinkle/extensions/symbol.rb
|
44
44
|
lib/sprinkle/installers/apt.rb
|
45
45
|
lib/sprinkle/installers/bsd_port.rb
|
46
|
+
lib/sprinkle/installers/config.rb
|
46
47
|
lib/sprinkle/installers/deb.rb
|
47
48
|
lib/sprinkle/installers/freebsd_pkg.rb
|
48
49
|
lib/sprinkle/installers/gem.rb
|
@@ -56,6 +57,7 @@ lib/sprinkle/installers/rpm.rb
|
|
56
57
|
lib/sprinkle/installers/source.rb
|
57
58
|
lib/sprinkle/installers/yum.rb
|
58
59
|
lib/sprinkle/installers/custom.rb
|
60
|
+
lib/sprinkle/installers/pear.rb
|
59
61
|
lib/sprinkle/package.rb
|
60
62
|
lib/sprinkle/policy.rb
|
61
63
|
lib/sprinkle/script.rb
|
@@ -67,6 +69,7 @@ lib/sprinkle/verifiers/process.rb
|
|
67
69
|
lib/sprinkle/verifiers/ruby.rb
|
68
70
|
lib/sprinkle/verifiers/symlink.rb
|
69
71
|
lib/sprinkle/verifiers/user.rb
|
72
|
+
lib/sprinkle/verifiers/pear.rb
|
70
73
|
lib/sprinkle/verify.rb
|
71
74
|
lib/sprinkle/version.rb
|
72
75
|
script/destroy
|
@@ -93,6 +96,7 @@ spec/sprinkle/installers/rpm_spec.rb
|
|
93
96
|
spec/sprinkle/installers/source_spec.rb
|
94
97
|
spec/sprinkle/installers/yum_spec.rb
|
95
98
|
spec/sprinkle/installers/custom_spec.rb
|
99
|
+
spec/sprinkle/installers/pear_spec.rb
|
96
100
|
spec/sprinkle/package_spec.rb
|
97
101
|
spec/sprinkle/policy_spec.rb
|
98
102
|
spec/sprinkle/script_spec.rb
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Sprinkle
|
2
|
+
module Installers
|
3
|
+
# = Pear Package Installer
|
4
|
+
#
|
5
|
+
class Pear < Installer
|
6
|
+
attr_accessor :packages #:nodoc:
|
7
|
+
|
8
|
+
def initialize(parent, *packages, &block) #:nodoc:
|
9
|
+
packages.flatten!
|
10
|
+
|
11
|
+
options.update(packages.pop) if packages.last.is_a?(Hash)
|
12
|
+
|
13
|
+
super parent, options, &block
|
14
|
+
|
15
|
+
@packages = packages
|
16
|
+
end
|
17
|
+
|
18
|
+
protected
|
19
|
+
|
20
|
+
def install_commands #:nodoc:
|
21
|
+
"pear install #{@packages.join(' ')}"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/sprinkle/package.rb
CHANGED
@@ -176,7 +176,15 @@ module Sprinkle
|
|
176
176
|
end
|
177
177
|
|
178
178
|
def custom(command, &block)
|
179
|
-
@
|
179
|
+
@operations << Sprinkle::Installers::Custom.new(self, command, &block)
|
180
|
+
end
|
181
|
+
|
182
|
+
def pear(*names, &block)
|
183
|
+
@operations << Sprinkle::Installers::Pear.new(self, *names, &block)
|
184
|
+
end
|
185
|
+
|
186
|
+
def config(&block)
|
187
|
+
@operations << Sprinkle::Installers::Config.new(self, &block)
|
180
188
|
end
|
181
189
|
|
182
190
|
def verify(description = '', &block)
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Sprinkle
|
2
|
+
module Verifiers
|
3
|
+
# = Dpkg Verifiers
|
4
|
+
#
|
5
|
+
# This verifier checks if a dpkg package is installed
|
6
|
+
module Pear
|
7
|
+
Sprinkle::Verify.register(Sprinkle::Verifiers::Pear)
|
8
|
+
|
9
|
+
def has_pear(name, version = nil)
|
10
|
+
version = version.nil? ? '' : version.gsub('.', '\.')
|
11
|
+
@commands << "pear list --allchannels 2>&1 | grep -e '^#{name}\\s*#{version}.*$'"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
+
|
3
|
+
describe Sprinkle::Installers::Pear do
|
4
|
+
before do
|
5
|
+
@pear = 'Log'
|
6
|
+
@pear2 = 'Test'
|
7
|
+
end
|
8
|
+
|
9
|
+
describe 'with one package' do
|
10
|
+
before do
|
11
|
+
@package = mock(Sprinkle::Package, :name => 'pear test', :source => nil, :repository => nil)
|
12
|
+
@installer = Sprinkle::Installers::Pear.new(@package, @pear)
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should accept a single package to install' do
|
16
|
+
@installer.packages.should == [@pear]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe 'with two packages' do
|
21
|
+
before do
|
22
|
+
@package = mock(Sprinkle::Package, :name => 'pear test', :source => nil, :repository => nil)
|
23
|
+
@installer = Sprinkle::Installers::Pear.new(@package, @pear, @pear2)
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'should accept two packages to install' do
|
27
|
+
@installer.packages.should == [@pear, @pear2]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe 'during installation' do
|
32
|
+
before do
|
33
|
+
@package = mock(Sprinkle::Package, :name => 'pear test', :source => nil, :repository => nil)
|
34
|
+
@installer = Sprinkle::Installers::Pear.new(@package, @pear, @pear2) do
|
35
|
+
pre :install, 'op1'
|
36
|
+
post :install, 'op2'
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should invoke the pear installer for the specified package' do
|
41
|
+
@installer.send(:install_commands).should == "pear install Log Test"
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'should automatically insert pre/post commands for the specified package' do
|
45
|
+
@installer.send(:install_sequence).should == [ 'op1', "pear install #{@pear} #{@pear2}", 'op2']
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -12,12 +12,14 @@ describe Sprinkle::Package do
|
|
12
12
|
# Kind of a messy way to do this but it works and DRYs out
|
13
13
|
# the specs. Checks to make sure an installer is receiving
|
14
14
|
# the block passed to it throught the package block.
|
15
|
-
def check_block_forwarding_on(installer)
|
15
|
+
def check_block_forwarding_on(installer, args = 'archive')
|
16
|
+
args = [args] unless args.is_a?(Array)
|
17
|
+
|
16
18
|
eval(<<CODE, binding, __FILE__, __LINE__)
|
17
19
|
pre_count = 0
|
18
20
|
lambda {
|
19
21
|
pkg = package @name do
|
20
|
-
#{installer}
|
22
|
+
#{installer}(*args) do
|
21
23
|
pre :install, 'preOp'
|
22
24
|
end
|
23
25
|
end
|
@@ -110,6 +112,14 @@ CODE
|
|
110
112
|
end
|
111
113
|
|
112
114
|
describe 'installer configuration' do
|
115
|
+
it 'should optionally accept a pear installer' do
|
116
|
+
pkg = package @name do
|
117
|
+
pear %w( pear1 pear2 )
|
118
|
+
end
|
119
|
+
|
120
|
+
pkg.should respond_to(:pear)
|
121
|
+
pkg.operations.last.should be_a(Sprinkle::Installers::Pear)
|
122
|
+
end
|
113
123
|
|
114
124
|
it 'should optionally accept an apt installer' do
|
115
125
|
pkg = package @name do
|
@@ -195,12 +205,24 @@ CODE
|
|
195
205
|
|
196
206
|
end
|
197
207
|
|
208
|
+
describe 'with a config installer' do
|
209
|
+
it 'should forward block to installer superclass' do
|
210
|
+
check_block_forwarding_on(:config, [])
|
211
|
+
end
|
212
|
+
end
|
213
|
+
|
198
214
|
describe 'with a custom installer' do
|
199
215
|
it 'should forward block to installer superclass' do
|
200
216
|
check_block_forwarding_on(:custom)
|
201
217
|
end
|
202
218
|
end
|
203
219
|
|
220
|
+
describe 'with a pear installer' do
|
221
|
+
it 'should forward block to installer superclass' do
|
222
|
+
check_block_forwarding_on(:pear)
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
204
226
|
describe 'when processing' do
|
205
227
|
|
206
228
|
before do
|
@@ -102,7 +102,7 @@ describe Sprinkle::Verify do
|
|
102
102
|
end
|
103
103
|
|
104
104
|
it 'should check that a user is in passwd' do
|
105
|
-
@verification.commands.should include('cat /etc/passwd | grep -
|
105
|
+
@verification.commands.should include('cat /etc/passwd | grep -e \'^deployer\'')
|
106
106
|
end
|
107
107
|
|
108
108
|
it 'should check that a pear package is installed' do
|
data/sprinkle.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{sprinkle}
|
5
|
-
s.version = "0.2.
|
5
|
+
s.version = "0.2.4"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Marcus Crafter"]
|
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.email = ["crafterm@redartisan.com"]
|
13
13
|
s.executables = ["sprinkle"]
|
14
14
|
s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.txt"]
|
15
|
-
s.files = ["CREDITS", "History.txt", "MIT-LICENSE", "Manifest.txt", "README.txt", "Rakefile", "bin/sprinkle", "config/hoe.rb", "config/requirements.rb", "examples/packages/build_essential.rb", "examples/packages/databases/mysql.rb", "examples/packages/databases/sqlite3.rb", "examples/packages/phusion.rb", "examples/packages/ruby/rails.rb", "examples/packages/ruby/ruby.rb", "examples/packages/ruby/rubygems.rb", "examples/packages/scm/git.rb", "examples/packages/scm/subversion.rb", "examples/packages/servers/apache.rb", "examples/rails/README", "examples/rails/deploy.rb", "examples/rails/packages/database.rb", "examples/rails/packages/essential.rb", "examples/rails/packages/rails.rb", "examples/rails/packages/scm.rb", "examples/rails/packages/search.rb", "examples/rails/packages/server.rb", "examples/rails/rails.rb", "examples/sprinkle/sprinkle.rb", "lib/sprinkle.rb", "lib/sprinkle/actors/actors.rb", "lib/sprinkle/actors/capistrano.rb", "lib/sprinkle/actors/local.rb", "lib/sprinkle/actors/ssh.rb", "lib/sprinkle/actors/vlad.rb", "lib/sprinkle/configurable.rb", "lib/sprinkle/deployment.rb", "lib/sprinkle/extensions/arbitrary_options.rb", "lib/sprinkle/extensions/array.rb", "lib/sprinkle/extensions/blank_slate.rb", "lib/sprinkle/extensions/dsl_accessor.rb", "lib/sprinkle/extensions/string.rb", "lib/sprinkle/extensions/symbol.rb", "lib/sprinkle/installers/apt.rb", "lib/sprinkle/installers/bsd_port.rb", "lib/sprinkle/installers/deb.rb", "lib/sprinkle/installers/freebsd_pkg.rb", "lib/sprinkle/installers/gem.rb", "lib/sprinkle/installers/installer.rb", "lib/sprinkle/installers/mac_port.rb", "lib/sprinkle/installers/openbsd_pkg.rb", "lib/sprinkle/installers/opensolaris_pkg.rb", "lib/sprinkle/installers/push_text.rb", "lib/sprinkle/installers/rake.rb", "lib/sprinkle/installers/rpm.rb", "lib/sprinkle/installers/source.rb", "lib/sprinkle/installers/yum.rb", "lib/sprinkle/installers/custom.rb", "lib/sprinkle/package.rb", "lib/sprinkle/policy.rb", "lib/sprinkle/script.rb", "lib/sprinkle/verifiers/directory.rb", "lib/sprinkle/verifiers/dpkg.rb", "lib/sprinkle/verifiers/executable.rb", "lib/sprinkle/verifiers/file.rb", "lib/sprinkle/verifiers/process.rb", "lib/sprinkle/verifiers/ruby.rb", "lib/sprinkle/verifiers/symlink.rb", "lib/sprinkle/verifiers/user.rb", "lib/sprinkle/verify.rb", "lib/sprinkle/version.rb", "script/destroy", "script/generate", "spec/spec.opts", "spec/spec_helper.rb", "spec/sprinkle/actors/capistrano_spec.rb", "spec/sprinkle/actors/local_spec.rb", "spec/sprinkle/configurable_spec.rb", "spec/sprinkle/deployment_spec.rb", "spec/sprinkle/extensions/array_spec.rb", "spec/sprinkle/extensions/string_spec.rb", "spec/sprinkle/installers/apt_spec.rb", "spec/sprinkle/installers/bsd_port_spec.rb", "spec/sprinkle/installers/freebsd_pkg_spec.rb", "spec/sprinkle/installers/gem_spec.rb", "spec/sprinkle/installers/installer_spec.rb", "spec/sprinkle/installers/mac_port_spec.rb", "spec/sprinkle/installers/openbsd_pkg_spec.rb", "spec/sprinkle/installers/opensolaris_pkg_spec.rb", "spec/sprinkle/installers/push_text_spec.rb", "spec/sprinkle/installers/rake_spec.rb", "spec/sprinkle/installers/rpm_spec.rb", "spec/sprinkle/installers/source_spec.rb", "spec/sprinkle/installers/yum_spec.rb", "spec/sprinkle/installers/custom_spec.rb", "spec/sprinkle/package_spec.rb", "spec/sprinkle/policy_spec.rb", "spec/sprinkle/script_spec.rb", "spec/sprinkle/sprinkle_spec.rb", "spec/sprinkle/verify_spec.rb", "sprinkle.gemspec", "tasks/deployment.rake", "tasks/environment.rake", "tasks/rspec.rake"]
|
15
|
+
s.files = ["CREDITS", "History.txt", "MIT-LICENSE", "Manifest.txt", "README.txt", "Rakefile", "bin/sprinkle", "config/hoe.rb", "config/requirements.rb", "examples/packages/build_essential.rb", "examples/packages/databases/mysql.rb", "examples/packages/databases/sqlite3.rb", "examples/packages/phusion.rb", "examples/packages/ruby/rails.rb", "examples/packages/ruby/ruby.rb", "examples/packages/ruby/rubygems.rb", "examples/packages/scm/git.rb", "examples/packages/scm/subversion.rb", "examples/packages/servers/apache.rb", "examples/rails/README", "examples/rails/deploy.rb", "examples/rails/packages/database.rb", "examples/rails/packages/essential.rb", "examples/rails/packages/rails.rb", "examples/rails/packages/scm.rb", "examples/rails/packages/search.rb", "examples/rails/packages/server.rb", "examples/rails/rails.rb", "examples/sprinkle/sprinkle.rb", "lib/sprinkle.rb", "lib/sprinkle/actors/actors.rb", "lib/sprinkle/actors/capistrano.rb", "lib/sprinkle/actors/local.rb", "lib/sprinkle/actors/ssh.rb", "lib/sprinkle/actors/vlad.rb", "lib/sprinkle/configurable.rb", "lib/sprinkle/deployment.rb", "lib/sprinkle/extensions/arbitrary_options.rb", "lib/sprinkle/extensions/array.rb", "lib/sprinkle/extensions/blank_slate.rb", "lib/sprinkle/extensions/dsl_accessor.rb", "lib/sprinkle/extensions/string.rb", "lib/sprinkle/extensions/symbol.rb", "lib/sprinkle/installers/apt.rb", "lib/sprinkle/installers/bsd_port.rb", "lib/sprinkle/installers/deb.rb", "lib/sprinkle/installers/freebsd_pkg.rb", "lib/sprinkle/installers/gem.rb", "lib/sprinkle/installers/installer.rb", "lib/sprinkle/installers/mac_port.rb", "lib/sprinkle/installers/openbsd_pkg.rb", "lib/sprinkle/installers/opensolaris_pkg.rb", "lib/sprinkle/installers/push_text.rb", "lib/sprinkle/installers/rake.rb", "lib/sprinkle/installers/rpm.rb", "lib/sprinkle/installers/source.rb", "lib/sprinkle/installers/yum.rb", "lib/sprinkle/installers/custom.rb", "lib/sprinkle/installers/pear.rb", "lib/sprinkle/package.rb", "lib/sprinkle/policy.rb", "lib/sprinkle/script.rb", "lib/sprinkle/verifiers/directory.rb", "lib/sprinkle/verifiers/dpkg.rb", "lib/sprinkle/verifiers/executable.rb", "lib/sprinkle/verifiers/file.rb", "lib/sprinkle/verifiers/process.rb", "lib/sprinkle/verifiers/ruby.rb", "lib/sprinkle/verifiers/symlink.rb", "lib/sprinkle/verifiers/user.rb", "lib/sprinkle/verifiers/pear.rb", "lib/sprinkle/verify.rb", "lib/sprinkle/version.rb", "script/destroy", "script/generate", "spec/spec.opts", "spec/spec_helper.rb", "spec/sprinkle/actors/capistrano_spec.rb", "spec/sprinkle/actors/local_spec.rb", "spec/sprinkle/configurable_spec.rb", "spec/sprinkle/deployment_spec.rb", "spec/sprinkle/extensions/array_spec.rb", "spec/sprinkle/extensions/string_spec.rb", "spec/sprinkle/installers/apt_spec.rb", "spec/sprinkle/installers/bsd_port_spec.rb", "spec/sprinkle/installers/freebsd_pkg_spec.rb", "spec/sprinkle/installers/gem_spec.rb", "spec/sprinkle/installers/installer_spec.rb", "spec/sprinkle/installers/mac_port_spec.rb", "spec/sprinkle/installers/openbsd_pkg_spec.rb", "spec/sprinkle/installers/opensolaris_pkg_spec.rb", "spec/sprinkle/installers/push_text_spec.rb", "spec/sprinkle/installers/rake_spec.rb", "spec/sprinkle/installers/rpm_spec.rb", "spec/sprinkle/installers/source_spec.rb", "spec/sprinkle/installers/yum_spec.rb", "spec/sprinkle/installers/custom_spec.rb", "spec/sprinkle/installers/pear_spec.rb", "spec/sprinkle/package_spec.rb", "spec/sprinkle/policy_spec.rb", "spec/sprinkle/script_spec.rb", "spec/sprinkle/sprinkle_spec.rb", "spec/sprinkle/verify_spec.rb", "sprinkle.gemspec", "tasks/deployment.rake", "tasks/environment.rake", "tasks/rspec.rake"]
|
16
16
|
s.has_rdoc = true
|
17
17
|
s.homepage = %q{http://sprinkle.rubyforge.org}
|
18
18
|
s.rdoc_options = ["--main", "README.txt"]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jemmyw-sprinkle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marcus Crafter
|
@@ -122,6 +122,7 @@ files:
|
|
122
122
|
- lib/sprinkle/installers/source.rb
|
123
123
|
- lib/sprinkle/installers/yum.rb
|
124
124
|
- lib/sprinkle/installers/custom.rb
|
125
|
+
- lib/sprinkle/installers/pear.rb
|
125
126
|
- lib/sprinkle/package.rb
|
126
127
|
- lib/sprinkle/policy.rb
|
127
128
|
- lib/sprinkle/script.rb
|
@@ -133,6 +134,7 @@ files:
|
|
133
134
|
- lib/sprinkle/verifiers/ruby.rb
|
134
135
|
- lib/sprinkle/verifiers/symlink.rb
|
135
136
|
- lib/sprinkle/verifiers/user.rb
|
137
|
+
- lib/sprinkle/verifiers/pear.rb
|
136
138
|
- lib/sprinkle/verify.rb
|
137
139
|
- lib/sprinkle/version.rb
|
138
140
|
- script/destroy
|
@@ -159,6 +161,7 @@ files:
|
|
159
161
|
- spec/sprinkle/installers/source_spec.rb
|
160
162
|
- spec/sprinkle/installers/yum_spec.rb
|
161
163
|
- spec/sprinkle/installers/custom_spec.rb
|
164
|
+
- spec/sprinkle/installers/pear_spec.rb
|
162
165
|
- spec/sprinkle/package_spec.rb
|
163
166
|
- spec/sprinkle/policy_spec.rb
|
164
167
|
- spec/sprinkle/script_spec.rb
|