sprinkle 0.3.1 → 0.3.2
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/.gitignore +1 -0
- data/README.markdown +6 -5
- data/Rakefile +4 -0
- data/VERSION +1 -1
- data/bin/sprinkle +5 -0
- data/lib/sprinkle.rb +7 -1
- data/lib/sprinkle/actors/ssh.rb +71 -17
- data/lib/sprinkle/actors/vlad.rb +11 -6
- data/lib/sprinkle/installers/binary.rb +1 -1
- data/lib/sprinkle/installers/deb.rb +4 -1
- data/lib/sprinkle/installers/freebsd_portinstall.rb +1 -1
- data/lib/sprinkle/installers/install_package.rb +79 -0
- data/lib/sprinkle/installers/push_text.rb +1 -1
- data/lib/sprinkle/installers/replace_text.rb +45 -0
- data/lib/sprinkle/installers/runner.rb +18 -0
- data/lib/sprinkle/installers/smart.rb +29 -0
- data/lib/sprinkle/installers/source.rb +10 -6
- data/lib/sprinkle/installers/transfer.rb +18 -4
- data/lib/sprinkle/installers/user.rb +15 -0
- data/lib/sprinkle/installers/zypper.rb +43 -0
- data/lib/sprinkle/package.rb +15 -0
- data/lib/sprinkle/verifiers/apt.rb +21 -0
- data/lib/sprinkle/verifiers/file.rb +9 -1
- data/lib/sprinkle/verifiers/package.rb +26 -0
- data/lib/sprinkle/verifiers/process.rb +2 -2
- data/lib/sprinkle/verifiers/ruby.rb +2 -2
- data/lib/sprinkle/verify.rb +2 -2
- data/spec/sprinkle/installers/push_text_spec.rb +4 -4
- data/spec/sprinkle/installers/replace_text_spec.rb +45 -0
- data/spec/sprinkle/installers/runner_spec.rb +31 -0
- data/spec/sprinkle/installers/source_spec.rb +8 -8
- data/spec/sprinkle/installers/zypper_spec.rb +49 -0
- data/spec/sprinkle/package_spec.rb +8 -0
- data/spec/sprinkle/verify_spec.rb +37 -38
- metadata +72 -21
@@ -339,7 +339,7 @@ describe Sprinkle::Installers::Source do
|
|
339
339
|
|
340
340
|
it 'should support zip archives' do
|
341
341
|
@installer.source = 'blah.zip'
|
342
|
-
@extraction = 'unzip'
|
342
|
+
@extraction = 'unzip -o'
|
343
343
|
end
|
344
344
|
|
345
345
|
after do
|
@@ -347,25 +347,25 @@ describe Sprinkle::Installers::Source do
|
|
347
347
|
end
|
348
348
|
|
349
349
|
end
|
350
|
-
|
350
|
+
|
351
351
|
describe 'base dir calculation' do
|
352
|
-
|
352
|
+
|
353
353
|
%w( tar tar.gz tgz tar.bz2 tb2 zip ).each do |archive|
|
354
|
-
|
354
|
+
|
355
355
|
it "should recognize #{archive} style archives" do
|
356
356
|
@installer.source = "blah.#{archive}"
|
357
357
|
@installer.send(:base_dir).should == 'blah'
|
358
358
|
end
|
359
|
-
|
359
|
+
|
360
360
|
end
|
361
|
-
|
361
|
+
|
362
362
|
# def base_dir #:nodoc:
|
363
363
|
# if archive_name.split('/').last =~ /(.*)\.(tar\.gz|tgz|tar\.bz2|tar|tb2)/
|
364
364
|
# return $1
|
365
365
|
# end
|
366
366
|
# raise "Unknown base path for source archive: #{@source}, please update code knowledge"
|
367
|
-
# end
|
368
|
-
|
367
|
+
# end
|
368
|
+
|
369
369
|
end
|
370
370
|
|
371
371
|
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
+
|
3
|
+
describe Sprinkle::Installers::Zypper do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@package = mock(Sprinkle::Package, :name => 'package')
|
7
|
+
end
|
8
|
+
|
9
|
+
def create_zypper(*packages, &block)
|
10
|
+
Sprinkle::Installers::Zypper.new(@package, *packages, &block)
|
11
|
+
end
|
12
|
+
|
13
|
+
describe 'when created' do
|
14
|
+
|
15
|
+
it 'should accept a single package to install' do
|
16
|
+
@installer = create_zypper 'ruby'
|
17
|
+
@installer.packages.should == [ 'ruby' ]
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should accept an array of packages to install' do
|
21
|
+
@installer = create_zypper %w( gcc gdb g++ )
|
22
|
+
@installer.packages.should == ['gcc', 'gdb', 'g++']
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'should accept an argument list of packages to install' do
|
26
|
+
@installer = create_zypper "gcc", "gdb", "g++"
|
27
|
+
@installer.packages.should == ['gcc', 'gdb', 'g++']
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe 'during installation' do
|
32
|
+
|
33
|
+
before do
|
34
|
+
@installer = create_zypper 'ruby', 'rubygems' do
|
35
|
+
pre :install, 'op1'
|
36
|
+
post :install, 'op2'
|
37
|
+
end
|
38
|
+
@install_commands = @installer.send :install_commands
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'should invoke the zypper installer for all specified packages' do
|
42
|
+
@install_commands.should =~ /zypper -n install -l -R ruby rubygems/
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'should automatically insert pre/post commands for the specified package' do
|
46
|
+
@installer.send(:install_sequence).should == [ 'op1', 'zypper -n install -l -R ruby rubygems', 'op2' ]
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -160,6 +160,14 @@ CODE
|
|
160
160
|
pkg.installers[0].class.should == Sprinkle::Installers::Source
|
161
161
|
pkg.installers[1].class.should == Sprinkle::Installers::Gem
|
162
162
|
end
|
163
|
+
|
164
|
+
it 'should optionally accept a runner installer' do
|
165
|
+
pkg = package @name do
|
166
|
+
runner 'obscure_installer_by_custom_cmd'
|
167
|
+
end
|
168
|
+
pkg.should respond_to(:runner)
|
169
|
+
pkg.installers.first.class.should == Sprinkle::Installers::Runner
|
170
|
+
end
|
163
171
|
end
|
164
172
|
|
165
173
|
describe 'with a source installer' do
|
@@ -8,35 +8,35 @@ describe Sprinkle::Verify do
|
|
8
8
|
verify 'moo' do
|
9
9
|
# Check a file exists
|
10
10
|
has_file 'my_file.txt'
|
11
|
-
|
11
|
+
|
12
12
|
# Check that a file contains a substring
|
13
13
|
file_contains 'my_file.txt', 'A sunny day on the lower east-side'
|
14
|
-
|
14
|
+
|
15
15
|
# Check a directory exists
|
16
16
|
has_directory 'mydir'
|
17
|
-
|
17
|
+
|
18
18
|
# Check a symlink exists
|
19
19
|
has_symlink 'mypointer'
|
20
|
-
|
20
|
+
|
21
21
|
# Check a symlink points to a certain file
|
22
22
|
has_symlink 'mypointer', 'myfile'
|
23
|
-
|
23
|
+
|
24
24
|
# Check if an executable exists
|
25
25
|
has_executable '/usr/bin/ruby'
|
26
|
-
|
26
|
+
|
27
27
|
# Check if a global executable exists (in PATH)
|
28
28
|
has_executable 'rails'
|
29
|
-
|
29
|
+
|
30
30
|
# Check for a process
|
31
31
|
has_process 'httpd'
|
32
|
-
|
32
|
+
|
33
33
|
# Check that ruby can include files
|
34
34
|
ruby_can_load 'a', 'b', 'c'
|
35
|
-
|
35
|
+
|
36
36
|
# Check that a gem exists
|
37
37
|
has_gem 'rails'
|
38
38
|
has_gem 'rails', '2.1.0'
|
39
|
-
|
39
|
+
|
40
40
|
# Check for a certain RPM package
|
41
41
|
has_rpm 'ntp'
|
42
42
|
end
|
@@ -45,88 +45,87 @@ describe Sprinkle::Verify do
|
|
45
45
|
@delivery = mock(Sprinkle::Deployment, :process => true)
|
46
46
|
@verification.delivery = @delivery
|
47
47
|
end
|
48
|
-
|
48
|
+
|
49
49
|
describe 'when created' do
|
50
50
|
it 'should raise error without a block' do
|
51
51
|
lambda { Verify.new(nil, '') }.should raise_error
|
52
52
|
end
|
53
53
|
end
|
54
|
-
|
54
|
+
|
55
55
|
describe 'with checks' do
|
56
56
|
it 'should do a "test -f" on the has_file check' do
|
57
57
|
@verification.commands.should include('test -f my_file.txt')
|
58
58
|
end
|
59
|
-
|
59
|
+
|
60
60
|
it 'should do a grep to see if a file contains a text string' do
|
61
61
|
@verification.commands.should include("grep 'A sunny day on the lower east-side' my_file.txt")
|
62
62
|
end
|
63
|
-
|
63
|
+
|
64
64
|
it 'should do a "test -d" on the has_directory check' do
|
65
65
|
@verification.commands.should include('test -d mydir')
|
66
66
|
end
|
67
|
-
|
67
|
+
|
68
68
|
it 'should do a "test -L" to check something is a symbolic link' do
|
69
69
|
@verification.commands.should include('test -L mypointer')
|
70
70
|
end
|
71
|
-
|
71
|
+
|
72
72
|
it 'should do a test equality to check a symlink points to a specific file' do
|
73
73
|
@verification.commands.should include("test 'myfile' = `readlink mypointer`")
|
74
74
|
end
|
75
|
-
|
75
|
+
|
76
76
|
it 'should do a "test -x" to check for an executable' do
|
77
77
|
@verification.commands.should include("test -x /usr/bin/ruby")
|
78
78
|
end
|
79
|
-
|
79
|
+
|
80
80
|
it 'should test the "which" command to look for a global executable' do
|
81
81
|
@verification.commands.should include('[ -n "`echo \`which rails\``" ]')
|
82
82
|
end
|
83
|
-
|
83
|
+
|
84
84
|
it 'should test the process list to find a process' do
|
85
|
-
@verification.commands.should include("ps
|
85
|
+
@verification.commands.should include("ps -C httpd")
|
86
86
|
end
|
87
|
-
|
87
|
+
|
88
88
|
it 'should check if ruby can include a, b, c' do
|
89
89
|
@verification.commands.should include("ruby -e \"require 'rubygems';require 'a';require 'b';require 'c'\"")
|
90
90
|
end
|
91
|
-
|
91
|
+
|
92
92
|
it 'should check that a ruby gem is installed' do
|
93
|
-
@verification.commands.should include("sudo gem list
|
94
|
-
@verification.commands.should include("sudo gem list | grep -e '^rails (.*2\\.1\\.0.*)$'")
|
93
|
+
@verification.commands.should include("sudo gem list 'rails' --installed --version '2.1.0' > /dev/null")
|
95
94
|
end
|
96
|
-
|
95
|
+
|
97
96
|
it 'should check that an RPM is installed' do
|
98
97
|
@verification.commands.should include("rpm -qa | grep ntp")
|
99
98
|
end
|
100
99
|
end
|
101
|
-
|
100
|
+
|
102
101
|
describe 'with configurations' do
|
103
102
|
# Make sure it includes Sprinkle::Configurable
|
104
103
|
it 'should respond to configurable methods' do
|
105
104
|
@verification.should respond_to(:defaults)
|
106
105
|
end
|
107
|
-
|
106
|
+
|
108
107
|
it 'should default padding option to 4' do
|
109
108
|
@verification.padding.should eql(4)
|
110
109
|
end
|
111
110
|
end
|
112
|
-
|
111
|
+
|
113
112
|
describe 'with process' do
|
114
113
|
it 'should raise an error when no delivery mechanism is set' do
|
115
114
|
@verification.instance_variable_set(:@delivery, nil)
|
116
115
|
lambda { @verification.process([]) }.should raise_error
|
117
116
|
end
|
118
|
-
|
117
|
+
|
119
118
|
describe 'when not testing' do
|
120
119
|
before do
|
121
120
|
# To be explicit
|
122
121
|
Sprinkle::OPTIONS[:testing] = false
|
123
122
|
end
|
124
|
-
|
123
|
+
|
125
124
|
it 'should call process on the delivery with the correct parameters' do
|
126
125
|
@delivery.should_receive(:process).with(@name, @verification.commands, [:app], true).once.and_return(true)
|
127
126
|
@verification.process([:app])
|
128
127
|
end
|
129
|
-
|
128
|
+
|
130
129
|
it 'should raise Sprinkle::VerificationFailed exception when commands fail' do
|
131
130
|
@delivery.should_receive(:process).once.and_return(false)
|
132
131
|
lambda { @verification.process([:app]) }.should raise_error(Sprinkle::VerificationFailed) do |error|
|
@@ -135,13 +134,13 @@ describe Sprinkle::Verify do
|
|
135
134
|
end
|
136
135
|
end
|
137
136
|
end
|
138
|
-
|
137
|
+
|
139
138
|
describe 'when testing' do
|
140
139
|
before do
|
141
140
|
Sprinkle::OPTIONS[:testing] = true
|
142
141
|
@logger = mock(ActiveSupport::BufferedLogger, :debug => true, :debug? => true)
|
143
142
|
end
|
144
|
-
|
143
|
+
|
145
144
|
it 'should not call process on the delivery' do
|
146
145
|
@delivery.should_not_receive(:process)
|
147
146
|
end
|
@@ -149,26 +148,26 @@ describe Sprinkle::Verify do
|
|
149
148
|
it 'should print the install sequence to the console' do
|
150
149
|
@verification.should_receive(:logger).twice.and_return(@logger)
|
151
150
|
end
|
152
|
-
|
151
|
+
|
153
152
|
after do
|
154
153
|
@verification.process([:app])
|
155
154
|
Sprinkle::OPTIONS[:testing] = false
|
156
155
|
end
|
157
156
|
end
|
158
157
|
end
|
159
|
-
|
158
|
+
|
160
159
|
describe 'with registering new verification modules' do
|
161
160
|
module MyModule
|
162
161
|
def rawr; end
|
163
162
|
end
|
164
|
-
|
163
|
+
|
165
164
|
it 'should not respond to rawr initially' do
|
166
165
|
@verification.should_not respond_to(:rawr)
|
167
166
|
end
|
168
|
-
|
167
|
+
|
169
168
|
it 'should respond to rawr after registering the module' do
|
170
169
|
Sprinkle::Verify.register(MyModule)
|
171
170
|
@verification.should respond_to(:rawr)
|
172
171
|
end
|
173
172
|
end
|
174
|
-
end
|
173
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sprinkle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 23
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 3
|
9
|
+
- 2
|
10
|
+
version: 0.3.2
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- Marcus Crafter
|
@@ -9,49 +15,73 @@ autorequire:
|
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
17
|
|
12
|
-
date:
|
18
|
+
date: 2010-12-11 00:00:00 +11:00
|
13
19
|
default_executable: sprinkle
|
14
20
|
dependencies:
|
15
21
|
- !ruby/object:Gem::Dependency
|
16
22
|
name: rspec
|
17
|
-
|
18
|
-
|
19
|
-
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
20
26
|
requirements:
|
21
27
|
- - ">="
|
22
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 13
|
30
|
+
segments:
|
31
|
+
- 1
|
32
|
+
- 2
|
33
|
+
- 9
|
23
34
|
version: 1.2.9
|
24
|
-
|
35
|
+
type: :development
|
36
|
+
version_requirements: *id001
|
25
37
|
- !ruby/object:Gem::Dependency
|
26
38
|
name: activesupport
|
27
|
-
|
28
|
-
|
29
|
-
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
30
42
|
requirements:
|
31
43
|
- - ">="
|
32
44
|
- !ruby/object:Gem::Version
|
45
|
+
hash: 11
|
46
|
+
segments:
|
47
|
+
- 2
|
48
|
+
- 0
|
49
|
+
- 2
|
33
50
|
version: 2.0.2
|
34
|
-
|
51
|
+
type: :runtime
|
52
|
+
version_requirements: *id002
|
35
53
|
- !ruby/object:Gem::Dependency
|
36
54
|
name: highline
|
37
|
-
|
38
|
-
|
39
|
-
|
55
|
+
prerelease: false
|
56
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
40
58
|
requirements:
|
41
59
|
- - ">="
|
42
60
|
- !ruby/object:Gem::Version
|
61
|
+
hash: 7
|
62
|
+
segments:
|
63
|
+
- 1
|
64
|
+
- 4
|
65
|
+
- 0
|
43
66
|
version: 1.4.0
|
44
|
-
|
67
|
+
type: :runtime
|
68
|
+
version_requirements: *id003
|
45
69
|
- !ruby/object:Gem::Dependency
|
46
70
|
name: capistrano
|
47
|
-
|
48
|
-
|
49
|
-
|
71
|
+
prerelease: false
|
72
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
50
74
|
requirements:
|
51
75
|
- - ">="
|
52
76
|
- !ruby/object:Gem::Version
|
77
|
+
hash: 17
|
78
|
+
segments:
|
79
|
+
- 2
|
80
|
+
- 5
|
81
|
+
- 5
|
53
82
|
version: 2.5.5
|
54
|
-
|
83
|
+
type: :runtime
|
84
|
+
version_requirements: *id004
|
55
85
|
description: Ruby DSL based software provisioning tool
|
56
86
|
email: crafterm@redartisan.com
|
57
87
|
executables:
|
@@ -110,6 +140,7 @@ files:
|
|
110
140
|
- lib/sprinkle/installers/freebsd_pkg.rb
|
111
141
|
- lib/sprinkle/installers/freebsd_portinstall.rb
|
112
142
|
- lib/sprinkle/installers/gem.rb
|
143
|
+
- lib/sprinkle/installers/install_package.rb
|
113
144
|
- lib/sprinkle/installers/installer.rb
|
114
145
|
- lib/sprinkle/installers/mac_port.rb
|
115
146
|
- lib/sprinkle/installers/noop.rb
|
@@ -117,16 +148,23 @@ files:
|
|
117
148
|
- lib/sprinkle/installers/opensolaris_pkg.rb
|
118
149
|
- lib/sprinkle/installers/push_text.rb
|
119
150
|
- lib/sprinkle/installers/rake.rb
|
151
|
+
- lib/sprinkle/installers/replace_text.rb
|
120
152
|
- lib/sprinkle/installers/rpm.rb
|
153
|
+
- lib/sprinkle/installers/runner.rb
|
154
|
+
- lib/sprinkle/installers/smart.rb
|
121
155
|
- lib/sprinkle/installers/source.rb
|
122
156
|
- lib/sprinkle/installers/transfer.rb
|
157
|
+
- lib/sprinkle/installers/user.rb
|
123
158
|
- lib/sprinkle/installers/yum.rb
|
159
|
+
- lib/sprinkle/installers/zypper.rb
|
124
160
|
- lib/sprinkle/package.rb
|
125
161
|
- lib/sprinkle/policy.rb
|
126
162
|
- lib/sprinkle/script.rb
|
163
|
+
- lib/sprinkle/verifiers/apt.rb
|
127
164
|
- lib/sprinkle/verifiers/directory.rb
|
128
165
|
- lib/sprinkle/verifiers/executable.rb
|
129
166
|
- lib/sprinkle/verifiers/file.rb
|
167
|
+
- lib/sprinkle/verifiers/package.rb
|
130
168
|
- lib/sprinkle/verifiers/process.rb
|
131
169
|
- lib/sprinkle/verifiers/rpm.rb
|
132
170
|
- lib/sprinkle/verifiers/ruby.rb
|
@@ -155,16 +193,20 @@ files:
|
|
155
193
|
- spec/sprinkle/installers/opensolaris_pkg_spec.rb
|
156
194
|
- spec/sprinkle/installers/push_text_spec.rb
|
157
195
|
- spec/sprinkle/installers/rake_spec.rb
|
196
|
+
- spec/sprinkle/installers/replace_text_spec.rb
|
158
197
|
- spec/sprinkle/installers/rpm_spec.rb
|
198
|
+
- spec/sprinkle/installers/runner_spec.rb
|
159
199
|
- spec/sprinkle/installers/source_spec.rb
|
160
200
|
- spec/sprinkle/installers/transfer_spec.rb
|
161
201
|
- spec/sprinkle/installers/yum_spec.rb
|
202
|
+
- spec/sprinkle/installers/zypper_spec.rb
|
162
203
|
- spec/sprinkle/package_spec.rb
|
163
204
|
- spec/sprinkle/policy_spec.rb
|
164
205
|
- spec/sprinkle/script_spec.rb
|
165
206
|
- spec/sprinkle/sprinkle_spec.rb
|
166
207
|
- spec/sprinkle/verify_spec.rb
|
167
208
|
- TODO
|
209
|
+
- spec/sprinkle/sequence_spec.rb
|
168
210
|
has_rdoc: true
|
169
211
|
homepage: http://github.com/crafterm/sprinkle
|
170
212
|
licenses: []
|
@@ -175,21 +217,27 @@ rdoc_options:
|
|
175
217
|
require_paths:
|
176
218
|
- lib
|
177
219
|
required_ruby_version: !ruby/object:Gem::Requirement
|
220
|
+
none: false
|
178
221
|
requirements:
|
179
222
|
- - ">="
|
180
223
|
- !ruby/object:Gem::Version
|
224
|
+
hash: 3
|
225
|
+
segments:
|
226
|
+
- 0
|
181
227
|
version: "0"
|
182
|
-
version:
|
183
228
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
229
|
+
none: false
|
184
230
|
requirements:
|
185
231
|
- - ">="
|
186
232
|
- !ruby/object:Gem::Version
|
233
|
+
hash: 3
|
234
|
+
segments:
|
235
|
+
- 0
|
187
236
|
version: "0"
|
188
|
-
version:
|
189
237
|
requirements: []
|
190
238
|
|
191
239
|
rubyforge_project: sprinkle
|
192
|
-
rubygems_version: 1.3.
|
240
|
+
rubygems_version: 1.3.7
|
193
241
|
signing_key:
|
194
242
|
specification_version: 3
|
195
243
|
summary: Ruby DSL based software provisioning tool
|
@@ -213,10 +261,13 @@ test_files:
|
|
213
261
|
- spec/sprinkle/installers/opensolaris_pkg_spec.rb
|
214
262
|
- spec/sprinkle/installers/push_text_spec.rb
|
215
263
|
- spec/sprinkle/installers/rake_spec.rb
|
264
|
+
- spec/sprinkle/installers/replace_text_spec.rb
|
216
265
|
- spec/sprinkle/installers/rpm_spec.rb
|
266
|
+
- spec/sprinkle/installers/runner_spec.rb
|
217
267
|
- spec/sprinkle/installers/source_spec.rb
|
218
268
|
- spec/sprinkle/installers/transfer_spec.rb
|
219
269
|
- spec/sprinkle/installers/yum_spec.rb
|
270
|
+
- spec/sprinkle/installers/zypper_spec.rb
|
220
271
|
- spec/sprinkle/package_spec.rb
|
221
272
|
- spec/sprinkle/policy_spec.rb
|
222
273
|
- spec/sprinkle/script_spec.rb
|