crafterm-sprinkle 0.1.1 → 0.1.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/CREDITS +2 -0
- data/Manifest.txt +5 -0
- data/examples/sprinkle/sprinkle.rb +61 -0
- data/lib/sprinkle.rb +1 -4
- data/lib/sprinkle/actors/vlad.rb +30 -0
- data/lib/sprinkle/installers/rpm.rb +20 -0
- data/lib/sprinkle/package.rb +4 -0
- data/lib/sprinkle/version.rb +1 -1
- data/spec/sprinkle/installers/rpm_spec.rb +43 -0
- data/spec/sprinkle/package_spec.rb +70 -62
- data/sprinkle.gemspec +27 -0
- metadata +9 -2
data/CREDITS
CHANGED
@@ -9,3 +9,5 @@ Jim Freeze (http://www.artima.com/rubycs/articles/ruby_as_dslP.html)
|
|
9
9
|
Matthew Tanase (http://www.slicehost.com)
|
10
10
|
Jared Kuolt (http://www.slicehost.com)
|
11
11
|
Jamis Buck (http://www.capify.org)
|
12
|
+
Matt Allen (http://blog.allen.com.au)
|
13
|
+
Eric Hodel (http://blog.segment7.net)
|
data/Manifest.txt
CHANGED
@@ -16,8 +16,10 @@ examples/rails/packages/rails.rb
|
|
16
16
|
examples/rails/packages/search.rb
|
17
17
|
examples/rails/packages/server.rb
|
18
18
|
examples/rails/rails.rb
|
19
|
+
examples/sprinkle/sprinkle.rb
|
19
20
|
lib/sprinkle.rb
|
20
21
|
lib/sprinkle/actors/capistrano.rb
|
22
|
+
lib/sprinkle/actors/vlad.rb
|
21
23
|
lib/sprinkle/deployment.rb
|
22
24
|
lib/sprinkle/extensions/arbitrary_options.rb
|
23
25
|
lib/sprinkle/extensions/array.rb
|
@@ -29,6 +31,7 @@ lib/sprinkle/installers/apt.rb
|
|
29
31
|
lib/sprinkle/installers/gem.rb
|
30
32
|
lib/sprinkle/installers/installer.rb
|
31
33
|
lib/sprinkle/installers/rake.rb
|
34
|
+
lib/sprinkle/installers/rpm.rb
|
32
35
|
lib/sprinkle/installers/source.rb
|
33
36
|
lib/sprinkle/package.rb
|
34
37
|
lib/sprinkle/policy.rb
|
@@ -45,11 +48,13 @@ spec/sprinkle/extensions/string_spec.rb
|
|
45
48
|
spec/sprinkle/installers/apt_spec.rb
|
46
49
|
spec/sprinkle/installers/gem_spec.rb
|
47
50
|
spec/sprinkle/installers/installer_spec.rb
|
51
|
+
spec/sprinkle/installers/rpm_spec.rb
|
48
52
|
spec/sprinkle/installers/source_spec.rb
|
49
53
|
spec/sprinkle/package_spec.rb
|
50
54
|
spec/sprinkle/policy_spec.rb
|
51
55
|
spec/sprinkle/script_spec.rb
|
52
56
|
spec/sprinkle/sprinkle_spec.rb
|
57
|
+
sprinkle.gemspec
|
53
58
|
tasks/deployment.rake
|
54
59
|
tasks/environment.rake
|
55
60
|
tasks/rspec.rake
|
@@ -0,0 +1,61 @@
|
|
1
|
+
#!/usr/bin/env sprinkle -s
|
2
|
+
|
3
|
+
# Example of a simple Sprinkle script to install a single gem on a remote host.
|
4
|
+
|
5
|
+
# Packages, sprinkle and its dependencies including rubygems and ruby, delivery mechanism
|
6
|
+
# uses Vlad
|
7
|
+
|
8
|
+
package :build_essential do
|
9
|
+
description 'Build tools'
|
10
|
+
apt 'build-essential'
|
11
|
+
end
|
12
|
+
|
13
|
+
package :ruby do
|
14
|
+
description 'Ruby Virtual Machine'
|
15
|
+
version '1.8.6'
|
16
|
+
source "ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-#{version}-p111.tar.gz" # implicit :style => :gnu
|
17
|
+
requires :ruby_dependencies
|
18
|
+
end
|
19
|
+
|
20
|
+
package :ruby_dependencies do
|
21
|
+
description 'Ruby Virtual Machine Build Dependencies'
|
22
|
+
apt %w( bison zlib1g-dev libssl-dev libreadline5-dev libncurses5-dev file )
|
23
|
+
end
|
24
|
+
|
25
|
+
package :rubygems do
|
26
|
+
description 'Ruby Gems Package Management System'
|
27
|
+
version '1.0.1'
|
28
|
+
source "http://rubyforge.org/frs/download.php/29548/rubygems-#{version}.tgz" do
|
29
|
+
custom_install 'ruby setup.rb'
|
30
|
+
end
|
31
|
+
requires :ruby
|
32
|
+
end
|
33
|
+
|
34
|
+
package :sprinkle do
|
35
|
+
description 'Sprinkle Provisioning Tool'
|
36
|
+
gem 'sprinkle' do
|
37
|
+
source 'http://gems.github.com' # use alternate gem server
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
|
42
|
+
# Policy, sprinkle policy requires only the sprinkle gem
|
43
|
+
|
44
|
+
policy :sprinkle, :roles => :app do
|
45
|
+
requires :sprinkle
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
# Deployment
|
50
|
+
|
51
|
+
deployment do
|
52
|
+
|
53
|
+
# mechanism for deployment
|
54
|
+
delivery :vlad do
|
55
|
+
role :app, 'yourhost.com'
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
# End of script, given the above information, Spinkle will apply the defined policy on all roles using the
|
61
|
+
# deployment settings specified.
|
data/lib/sprinkle.rb
CHANGED
@@ -16,13 +16,10 @@ module Sprinkle
|
|
16
16
|
OPTIONS = { :testing => false, :verbose => false }
|
17
17
|
end
|
18
18
|
|
19
|
-
#
|
19
|
+
# Define a logging target and understand packages, policies and deployment DSL
|
20
20
|
class Object
|
21
21
|
include Sprinkle::Package, Sprinkle::Policy, Sprinkle::Deployment
|
22
|
-
end
|
23
22
|
|
24
|
-
# Define a logging target
|
25
|
-
class Object
|
26
23
|
def logger
|
27
24
|
@@__log__ ||= ActiveSupport::BufferedLogger.new($stdout, ActiveSupport::BufferedLogger::Severity::INFO)
|
28
25
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Sprinkle
|
2
|
+
module Actors
|
3
|
+
class Vlad
|
4
|
+
require 'vlad'
|
5
|
+
attr_accessor :loaded_recipes
|
6
|
+
|
7
|
+
def initialize(&block)
|
8
|
+
self.instance_eval &block if block
|
9
|
+
end
|
10
|
+
|
11
|
+
def script(name)
|
12
|
+
@loaded_recipes ||= []
|
13
|
+
self.load name
|
14
|
+
@loaded_recipes << script
|
15
|
+
end
|
16
|
+
|
17
|
+
def process(name, commands, roles)
|
18
|
+
commands = commands.join ' && ' if commands.is_a? Array
|
19
|
+
t = remote_task(task_sym(name), :roles => roles) { run commands }
|
20
|
+
t.invoke
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def task_sym(name)
|
26
|
+
"install_#{name.to_task_name}".to_sym
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Sprinkle
|
2
|
+
module Installers
|
3
|
+
class Rpm < Installer
|
4
|
+
attr_accessor :packages
|
5
|
+
|
6
|
+
def initialize(parent, packages, &block)
|
7
|
+
super parent, &block
|
8
|
+
packages = [packages] unless packages.is_a? Array
|
9
|
+
@packages = packages
|
10
|
+
end
|
11
|
+
|
12
|
+
protected
|
13
|
+
|
14
|
+
def install_sequence
|
15
|
+
"rpm -Uvh #{@packages.join(' ')}"
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/sprinkle/package.rb
CHANGED
@@ -30,6 +30,10 @@ module Sprinkle
|
|
30
30
|
@installer = Sprinkle::Installers::Apt.new(self, *names)
|
31
31
|
end
|
32
32
|
|
33
|
+
def rpm(*names)
|
34
|
+
@installer = Sprinkle::Installers::Rpm.new(self, *names)
|
35
|
+
end
|
36
|
+
|
33
37
|
def gem(name, options = {}, &block)
|
34
38
|
@dependencies << :rubygems
|
35
39
|
@installer = Sprinkle::Installers::Gem.new(self, name, options, &block)
|
data/lib/sprinkle/version.rb
CHANGED
@@ -0,0 +1,43 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
+
|
3
|
+
describe Sprinkle::Installers::Rpm do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@package = mock(Sprinkle::Package, :name => 'package')
|
7
|
+
end
|
8
|
+
|
9
|
+
def create_rpm(debs, &block)
|
10
|
+
Sprinkle::Installers::Rpm.new(@package, debs, &block)
|
11
|
+
end
|
12
|
+
|
13
|
+
describe 'when created' do
|
14
|
+
|
15
|
+
it 'should accept a single package to install' do
|
16
|
+
@installer = create_rpm 'ruby'
|
17
|
+
@installer.packages.should == [ 'ruby' ]
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should accept an array of packages to install' do
|
21
|
+
@installer = create_rpm %w( gcc gdb g++ )
|
22
|
+
@installer.packages.should == ['gcc', 'gdb', 'g++']
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
describe 'during installation' do
|
28
|
+
|
29
|
+
before do
|
30
|
+
@installer = create_rpm 'ruby'
|
31
|
+
@install_sequence = @installer.send :install_sequence
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'should invoke the apt installer for all specified packages' do
|
35
|
+
@install_sequence.should =~ /rpm -Uvh ruby/
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'should specify a non interactive mode to the apt installer'
|
39
|
+
it 'should install a specific version if defined'
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
@@ -3,201 +3,209 @@ require File.dirname(__FILE__) + '/../spec_helper'
|
|
3
3
|
describe Sprinkle::Package do
|
4
4
|
include Sprinkle::Package
|
5
5
|
|
6
|
-
before do
|
6
|
+
before do
|
7
7
|
@name = :package_name
|
8
8
|
@empty = Proc.new { }
|
9
9
|
@opts = { }
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
describe Sprinkle::Package, 'when created' do
|
13
|
-
|
14
|
-
it 'should be invalid without a block descriptor' do
|
13
|
+
|
14
|
+
it 'should be invalid without a block descriptor' do
|
15
15
|
lambda { package @name }.should raise_error
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
it 'should be invalid without a name' do
|
19
19
|
lambda { package nil, &@empty }.should raise_error
|
20
20
|
lambda { package @name, &@empty }.should_not raise_error
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
it 'should optionally accept a description' do
|
24
24
|
pkg = package @name do
|
25
25
|
description 'my package description'
|
26
26
|
end
|
27
27
|
pkg.description.should == 'my package description'
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
it 'should optionally accept a version' do
|
31
31
|
pkg = package @name do
|
32
32
|
version '2.0.2'
|
33
33
|
end
|
34
34
|
pkg.version.should == '2.0.2'
|
35
35
|
end
|
36
|
-
|
37
|
-
it 'should optionally accept an installer' do
|
36
|
+
|
37
|
+
it 'should optionally accept an installer' do
|
38
38
|
pkg = package @name do
|
39
39
|
gem 'rails'
|
40
40
|
end
|
41
41
|
pkg.installer.should_not be_nil
|
42
42
|
end
|
43
|
-
|
44
|
-
it 'should optionally accept dependencies' do
|
43
|
+
|
44
|
+
it 'should optionally accept dependencies' do
|
45
45
|
pkg = package @name do
|
46
46
|
requires :webserver, :database
|
47
47
|
end
|
48
48
|
pkg.dependencies.should == [:webserver, :database]
|
49
49
|
end
|
50
|
-
|
51
|
-
it 'should optionally define a virtual package implementation' do
|
50
|
+
|
51
|
+
it 'should optionally define a virtual package implementation' do
|
52
52
|
pkg = package @name, :provides => :database do; end
|
53
53
|
pkg.provides.should == :database
|
54
54
|
end
|
55
|
-
|
56
|
-
it 'should be able to represent itself as a string' do
|
55
|
+
|
56
|
+
it 'should be able to represent itself as a string' do
|
57
57
|
pkg = package @name do; end
|
58
58
|
pkg.to_s.should == @name
|
59
59
|
end
|
60
60
|
|
61
61
|
end
|
62
62
|
|
63
|
-
describe Sprinkle::Package, 'helper method' do
|
64
|
-
|
65
|
-
it 'should added new packages to the global package hash' do
|
63
|
+
describe Sprinkle::Package, 'helper method' do
|
64
|
+
|
65
|
+
it 'should added new packages to the global package hash' do
|
66
66
|
pkg = package @name do; end
|
67
67
|
Sprinkle::Package::PACKAGES[@name].should == pkg
|
68
68
|
end
|
69
|
-
|
70
|
-
it 'should add the new package to the provides list if specified' do
|
69
|
+
|
70
|
+
it 'should add the new package to the provides list if specified' do
|
71
71
|
pkg = package @name, :provides => :database do; end
|
72
72
|
Sprinkle::Package::PACKAGES[:database].last.should == pkg
|
73
73
|
end
|
74
|
-
|
74
|
+
|
75
75
|
end
|
76
76
|
|
77
77
|
describe Sprinkle::Package, 'installer configuration' do
|
78
|
-
|
79
|
-
it 'should optionally accept an apt installer' do
|
78
|
+
|
79
|
+
it 'should optionally accept an apt installer' do
|
80
80
|
pkg = package @name do
|
81
81
|
apt %w( deb1 deb2 )
|
82
82
|
end
|
83
83
|
pkg.should respond_to(:apt)
|
84
84
|
pkg.installer.class.should == Sprinkle::Installers::Apt
|
85
85
|
end
|
86
|
-
|
87
|
-
it 'should optionally accept
|
86
|
+
|
87
|
+
it 'should optionally accept an rpm installer' do
|
88
|
+
pkg = package @name do
|
89
|
+
rpm %w( rpm1 rpm2 )
|
90
|
+
end
|
91
|
+
pkg.should respond_to(:rpm)
|
92
|
+
pkg.installer.class.should == Sprinkle::Installers::Rpm
|
93
|
+
end
|
94
|
+
|
95
|
+
it 'should optionally accept a gem installer' do
|
88
96
|
pkg = package @name do
|
89
97
|
gem 'gem'
|
90
98
|
end
|
91
99
|
pkg.should respond_to(:gem)
|
92
100
|
pkg.installer.class.should == Sprinkle::Installers::Gem
|
93
101
|
end
|
94
|
-
|
95
|
-
it 'should optionally accept a source installer' do
|
102
|
+
|
103
|
+
it 'should optionally accept a source installer' do
|
96
104
|
pkg = package @name do
|
97
105
|
source 'archive'
|
98
106
|
end
|
99
107
|
pkg.should respond_to(:source)
|
100
108
|
pkg.installer.class.should == Sprinkle::Installers::Source
|
101
109
|
end
|
102
|
-
|
110
|
+
|
103
111
|
end
|
104
112
|
|
105
113
|
describe Sprinkle::Package, 'with a source installer' do
|
106
|
-
|
107
|
-
it 'should optionally accept a block containing customisations' do
|
114
|
+
|
115
|
+
it 'should optionally accept a block containing customisations' do
|
108
116
|
pkg = package @name do
|
109
117
|
source 'archive' do; end
|
110
118
|
end
|
111
119
|
pkg.should respond_to(:source)
|
112
120
|
pkg.installer.class.should == Sprinkle::Installers::Source
|
113
121
|
end
|
114
|
-
|
115
|
-
it 'should automatically add a build essential dependency' do
|
122
|
+
|
123
|
+
it 'should automatically add a build essential dependency' do
|
116
124
|
pkg = package @name do
|
117
125
|
source 'archive'
|
118
126
|
end
|
119
127
|
pkg.dependencies.should include(:build_essential)
|
120
128
|
end
|
121
|
-
|
129
|
+
|
122
130
|
end
|
123
131
|
|
124
132
|
describe Sprinkle::Package, 'with an gem installer' do
|
125
|
-
|
126
|
-
it 'should automatically add a rubygems dependency' do
|
133
|
+
|
134
|
+
it 'should automatically add a rubygems dependency' do
|
127
135
|
pkg = package @name do
|
128
136
|
gem 'gem'
|
129
137
|
end
|
130
138
|
pkg.dependencies.should include(:rubygems)
|
131
139
|
end
|
132
|
-
|
140
|
+
|
133
141
|
end
|
134
142
|
|
135
143
|
describe Sprinkle::Package, 'when processing' do
|
136
|
-
|
137
|
-
before do
|
144
|
+
|
145
|
+
before do
|
138
146
|
@deployment = mock(Sprinkle::Deployment)
|
139
147
|
@roles = [ :app, :db ]
|
140
148
|
@installer = mock(Sprinkle::Installers::Installer, :defaults => true, :process => true)
|
141
149
|
@package = package @name do; end
|
142
150
|
end
|
143
|
-
|
144
|
-
describe Sprinkle::Package, 'with an installer' do
|
145
|
-
|
146
|
-
before do
|
151
|
+
|
152
|
+
describe Sprinkle::Package, 'with an installer' do
|
153
|
+
|
154
|
+
before do
|
147
155
|
@package.installer = @installer
|
148
156
|
end
|
149
157
|
|
150
|
-
it 'should configure itself against the deployment context' do
|
158
|
+
it 'should configure itself against the deployment context' do
|
151
159
|
@installer.should_receive(:defaults).with(@deployment).and_return
|
152
160
|
end
|
153
|
-
|
154
|
-
it 'should request the installer to process itself' do
|
161
|
+
|
162
|
+
it 'should request the installer to process itself' do
|
155
163
|
@installer.should_receive(:process).with(@roles).and_return
|
156
164
|
end
|
157
|
-
|
158
|
-
after do
|
165
|
+
|
166
|
+
after do
|
159
167
|
@package.process(@deployment, @roles)
|
160
168
|
end
|
161
169
|
end
|
162
|
-
|
163
|
-
describe Sprinkle::Package, 'without an installer' do
|
164
|
-
|
165
|
-
it 'should not request the installer to process if the package is a metapackage' do
|
170
|
+
|
171
|
+
describe Sprinkle::Package, 'without an installer' do
|
172
|
+
|
173
|
+
it 'should not request the installer to process if the package is a metapackage' do
|
166
174
|
@installer.should_not_receive(:process)
|
167
175
|
@package.process(@deployment, @roles)
|
168
176
|
end
|
169
|
-
|
177
|
+
|
170
178
|
end
|
171
|
-
|
179
|
+
|
172
180
|
end
|
173
181
|
|
174
182
|
describe Sprinkle::Package, 'hierarchies' do
|
175
|
-
|
176
|
-
before do
|
183
|
+
|
184
|
+
before do
|
177
185
|
@a = package :a do; requires :b; end
|
178
186
|
@b = package :b do; requires :c; end
|
179
187
|
@c = package :c do; end
|
180
188
|
end
|
181
|
-
|
182
|
-
it 'should be able to return a dependency hierarchy tree' do
|
189
|
+
|
190
|
+
it 'should be able to return a dependency hierarchy tree' do
|
183
191
|
@a.tree.flatten.should == [ @c, @b, @a ]
|
184
192
|
@b.tree.flatten.should == [ @c, @b ]
|
185
193
|
@c.tree.flatten.should == [ @c ]
|
186
194
|
end
|
187
|
-
|
188
|
-
it 'should optionally accept a block to call upon item in the tree during hierarchy traversal' do
|
195
|
+
|
196
|
+
it 'should optionally accept a block to call upon item in the tree during hierarchy traversal' do
|
189
197
|
@count = 0
|
190
198
|
@a.tree do
|
191
199
|
@count += 1
|
192
200
|
end
|
193
201
|
@count.should == 2
|
194
202
|
end
|
195
|
-
|
196
|
-
it 'should maintain a depth count of how deep the hierarchy is' do
|
203
|
+
|
204
|
+
it 'should maintain a depth count of how deep the hierarchy is' do
|
197
205
|
@b.should_receive(:tree).with(2).and_return([@b])
|
198
206
|
@a.tree do; end
|
199
207
|
end
|
200
|
-
|
208
|
+
|
201
209
|
end
|
202
210
|
|
203
211
|
end
|
data/sprinkle.gemspec
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.name = %q{sprinkle}
|
3
|
+
s.version = "0.1.2"
|
4
|
+
|
5
|
+
s.specification_version = 2 if s.respond_to? :specification_version=
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Marcus Crafter"]
|
9
|
+
s.date = %q{2008-06-03}
|
10
|
+
s.default_executable = %q{sprinkle}
|
11
|
+
s.description = %q{Ruby DSL based software provisioning tool}
|
12
|
+
s.email = ["crafterm@redartisan.com"]
|
13
|
+
s.executables = ["sprinkle"]
|
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/merb/deploy.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/search.rb", "examples/rails/packages/server.rb", "examples/rails/rails.rb", "examples/sprinkle/deploy.rb", "examples/sprinkle/sprinkle.rb", "lib/sprinkle.rb", "lib/sprinkle/actors/capistrano.rb", "lib/sprinkle/actors/vlad.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/gem.rb", "lib/sprinkle/installers/installer.rb", "lib/sprinkle/installers/rake.rb", "lib/sprinkle/installers/rpm.rb", "lib/sprinkle/installers/source.rb", "lib/sprinkle/package.rb", "lib/sprinkle/policy.rb", "lib/sprinkle/script.rb", "lib/sprinkle/version.rb", "script/destroy", "script/generate", "spec/spec.opts", "spec/spec_helper.rb", "spec/sprinkle/actors/capistrano_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/gem_spec.rb", "spec/sprinkle/installers/installer_spec.rb", "spec/sprinkle/installers/rpm_spec.rb", "spec/sprinkle/installers/source_spec.rb", "spec/sprinkle/package_spec.rb", "spec/sprinkle/policy_spec.rb", "spec/sprinkle/script_spec.rb", "spec/sprinkle/sprinkle_spec.rb", "sprinkle.gemspec", "tasks/deployment.rake", "tasks/environment.rake", "tasks/rspec.rake", "thoughts.txt"]
|
16
|
+
s.has_rdoc = true
|
17
|
+
s.homepage = %q{http://sprinkle.rubyforge.org}
|
18
|
+
s.rdoc_options = ["--main", "README.txt"]
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
s.rubyforge_project = %q{sprinkle}
|
21
|
+
s.rubygems_version = %q{1.1.1}
|
22
|
+
s.summary = %q{Ruby DSL based software provisioning tool}
|
23
|
+
|
24
|
+
s.add_dependency(%q<activesupport>, [">= 2.0.2"])
|
25
|
+
s.add_dependency(%q<highline>, [">= 1.4.0"])
|
26
|
+
s.add_dependency(%q<capistrano>, [">= 2.2.0"])
|
27
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: crafterm-sprinkle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marcus Crafter
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-06-03 00:00:00 -07:00
|
13
13
|
default_executable: sprinkle
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -69,8 +69,11 @@ files:
|
|
69
69
|
- examples/rails/packages/search.rb
|
70
70
|
- examples/rails/packages/server.rb
|
71
71
|
- examples/rails/rails.rb
|
72
|
+
- examples/sprinkle/deploy.rb
|
73
|
+
- examples/sprinkle/sprinkle.rb
|
72
74
|
- lib/sprinkle.rb
|
73
75
|
- lib/sprinkle/actors/capistrano.rb
|
76
|
+
- lib/sprinkle/actors/vlad.rb
|
74
77
|
- lib/sprinkle/deployment.rb
|
75
78
|
- lib/sprinkle/extensions/arbitrary_options.rb
|
76
79
|
- lib/sprinkle/extensions/array.rb
|
@@ -82,6 +85,7 @@ files:
|
|
82
85
|
- lib/sprinkle/installers/gem.rb
|
83
86
|
- lib/sprinkle/installers/installer.rb
|
84
87
|
- lib/sprinkle/installers/rake.rb
|
88
|
+
- lib/sprinkle/installers/rpm.rb
|
85
89
|
- lib/sprinkle/installers/source.rb
|
86
90
|
- lib/sprinkle/package.rb
|
87
91
|
- lib/sprinkle/policy.rb
|
@@ -98,14 +102,17 @@ files:
|
|
98
102
|
- spec/sprinkle/installers/apt_spec.rb
|
99
103
|
- spec/sprinkle/installers/gem_spec.rb
|
100
104
|
- spec/sprinkle/installers/installer_spec.rb
|
105
|
+
- spec/sprinkle/installers/rpm_spec.rb
|
101
106
|
- spec/sprinkle/installers/source_spec.rb
|
102
107
|
- spec/sprinkle/package_spec.rb
|
103
108
|
- spec/sprinkle/policy_spec.rb
|
104
109
|
- spec/sprinkle/script_spec.rb
|
105
110
|
- spec/sprinkle/sprinkle_spec.rb
|
111
|
+
- sprinkle.gemspec
|
106
112
|
- tasks/deployment.rake
|
107
113
|
- tasks/environment.rake
|
108
114
|
- tasks/rspec.rake
|
115
|
+
- thoughts.txt
|
109
116
|
has_rdoc: true
|
110
117
|
homepage: http://sprinkle.rubyforge.org
|
111
118
|
post_install_message:
|