jemmyw-sprinkle 0.2.3 → 0.2.4
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.
- 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
|