crafterm-sprinkle 0.1.2 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
data/CREDITS CHANGED
@@ -10,4 +10,5 @@ Matthew Tanase (http://www.slicehost.com)
10
10
  Jared Kuolt (http://www.slicehost.com)
11
11
  Jamis Buck (http://www.capify.org)
12
12
  Matt Allen (http://blog.allen.com.au)
13
- Eric Hodel (http://blog.segment7.net)
13
+ Eric Hodel (http://blog.segment7.net)
14
+ Pete Yandell (http://notahat.com)
@@ -14,8 +14,8 @@ end
14
14
 
15
15
  package :rubygems do
16
16
  description 'Ruby Gems Package Management System'
17
- version '1.0.1'
18
- source "http://rubyforge.org/frs/download.php/29548/rubygems-#{version}.tgz" do
17
+ version '1.2.0'
18
+ source "http://rubyforge.org/frs/download.php/38646/rubygems-#{version}.tgz" do
19
19
  custom_install 'ruby setup.rb'
20
20
  end
21
21
  requires :ruby
@@ -24,5 +24,5 @@ end
24
24
  package :rails do
25
25
  description 'Ruby on Rails'
26
26
  gem 'rails'
27
- version '2.0.2'
27
+ version '2.1.0'
28
28
  end
@@ -13,8 +13,8 @@ end
13
13
 
14
14
  package :apache, :provides => :webserver do
15
15
  description 'Apache 2 HTTP Server'
16
- version '2.2.6'
17
- source "http://apache.wildit.net.au/httpd/httpd-#{version}.tar.bz2" do
16
+ version '2.2.9'
17
+ source "http://www.apache.org/dist/httpd/httpd-#{version}.tar.bz2" do
18
18
  enable %w( mods-shared=all proxy proxy-balancer proxy-http rewrite cache headers ssl deflate so )
19
19
  prefix "/opt/local/apache2-#{version}"
20
20
  post :install, 'install -m 755 support/apachectl /etc/init.d/apache2', 'update-rc.d -f apache2 defaults'
@@ -34,7 +34,7 @@ require 'packages/search'
34
34
  # the user is requested to select which one to use.
35
35
 
36
36
  policy :rails, :roles => :app do
37
- requires :rails, :version => '2.0.2'
37
+ requires :rails, :version => '2.1.0'
38
38
  requires :appserver
39
39
  requires :database
40
40
  requires :webserver
@@ -1,56 +1,33 @@
1
- #!/usr/bin/env sprinkle -s
1
+ #!/usr/bin/env sprinkle -c -s
2
2
 
3
- # Example of a simple Sprinkle script to install a single gem on a remote host.
3
+ # Example of the simplest Sprinkle script to install a single gem on a remote host. This
4
+ # particular script assumes that rubygems (and ruby, etc) are already installed on the remote
5
+ # host. To see a larger example of installing an entire ruby, rubygems, gem stack from source,
6
+ # please see the rails example.
4
7
 
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
8
+ # Packages, only sprinkle is defined in this world
33
9
 
34
10
  package :sprinkle do
35
11
  description 'Sprinkle Provisioning Tool'
36
- gem 'sprinkle' do
12
+ gem 'crafterm-sprinkle' do
37
13
  source 'http://gems.github.com' # use alternate gem server
14
+ #repository '/opt/local/gems' # specify an alternate local gem repository
38
15
  end
39
16
  end
40
17
 
41
18
 
42
- # Policy, sprinkle policy requires only the sprinkle gem
19
+ # Policies, sprinkle policy requires only the sprinkle gem
43
20
 
44
21
  policy :sprinkle, :roles => :app do
45
22
  requires :sprinkle
46
23
  end
47
24
 
48
25
 
49
- # Deployment
26
+ # Deployment settings
50
27
 
51
28
  deployment do
52
29
 
53
- # mechanism for deployment
30
+ # use vlad for deployment
54
31
  delivery :vlad do
55
32
  role :app, 'yourhost.com'
56
33
  end
@@ -11,7 +11,7 @@ module Sprinkle
11
11
 
12
12
  protected
13
13
 
14
- def install_sequence
14
+ def install_commands
15
15
  "DEBCONF_TERSE='yes' DEBIAN_PRIORITY='critical' DEBIAN_FRONTEND=noninteractive apt-get -qyu install #{@packages.join(' ')}"
16
16
  end
17
17
 
@@ -20,12 +20,14 @@ module Sprinkle
20
20
 
21
21
  # rubygems 0.9.5+ installs dependencies by default, and does platform selection
22
22
 
23
- def install_sequence
23
+ def install_commands
24
24
  cmd = "gem install #{gem}"
25
25
  cmd << " --version '#{version}'" if version
26
26
  cmd << " --source #{source}" if source
27
+ cmd << " --install-dir #{repository}" if repository
27
28
  cmd
28
29
  end
30
+
29
31
  end
30
32
  end
31
33
  end
@@ -1,14 +1,25 @@
1
1
  module Sprinkle
2
2
  module Installers
3
3
  class Installer
4
- attr_accessor :delivery, :package, :options
4
+ attr_accessor :delivery, :package, :options, :pre, :post
5
5
 
6
6
  def initialize(package, options = {}, &block)
7
7
  @package = package
8
8
  @options = options
9
+ @pre = {}; @post = {}
9
10
  self.instance_eval(&block) if block
10
11
  end
11
12
 
13
+ def pre(stage, *commands)
14
+ @pre[stage] ||= []
15
+ @pre[stage] += commands
16
+ end
17
+
18
+ def post(stage, *commands)
19
+ @post[stage] ||= []
20
+ @post[stage] += commands
21
+ end
22
+
12
23
  def defaults(deployment)
13
24
  defaults = deployment.defaults[self.class.name.split(/::/).last.downcase.to_sym]
14
25
  self.instance_eval(&defaults) if defaults
@@ -39,9 +50,36 @@ module Sprinkle
39
50
 
40
51
  protected
41
52
 
53
+ # Installation is separated into two styles that concrete derivative installer classes
54
+ # can implement.
55
+ #
56
+ # Simple installers that issue a single or set of commands can overwride
57
+ # install_commands (eg. apt, gem, rpm). Pre/post install commands are included in this
58
+ # style for free.
59
+ #
60
+ # More complicated installers that have different stages, and require pre/post commands
61
+ # within stages can override install_sequence and take complete control of the install
62
+ # command sequence construction (eg. source based installer).
63
+
42
64
  def install_sequence
65
+ commands = pre_commands(:install) + [ install_commands ] + post_commands(:install)
66
+ commands.flatten
67
+ end
68
+
69
+ def install_commands
43
70
  raise 'Concrete installers implement this to specify commands to run to install their respective packages'
44
71
  end
72
+
73
+ def pre_commands(stage)
74
+ dress @pre[stage] || [], :pre
75
+ end
76
+
77
+ def post_commands(stage)
78
+ dress @post[stage] || [], :post
79
+ end
80
+
81
+ def dress(commands, stage); commands; end
82
+
45
83
  end
46
84
  end
47
85
  end
@@ -8,9 +8,10 @@ module Sprinkle
8
8
 
9
9
  protected
10
10
 
11
- def install_sequence
11
+ def install_commands
12
12
  "rake #{@commands.join(' ')}"
13
13
  end
14
+
14
15
  end
15
16
  end
16
17
  end
@@ -11,9 +11,9 @@ module Sprinkle
11
11
 
12
12
  protected
13
13
 
14
- def install_sequence
15
- "rpm -Uvh #{@packages.join(' ')}"
16
- end
14
+ def install_commands
15
+ "rpm -Uvh #{@packages.join(' ')}"
16
+ end
17
17
 
18
18
  end
19
19
  end
@@ -1,24 +1,13 @@
1
1
  module Sprinkle
2
2
  module Installers
3
3
  class Source < Installer
4
- attr_accessor :source, :pre, :post
4
+ attr_accessor :source
5
5
 
6
6
  def initialize(parent, source, options = {}, &block)
7
- @pre = {}; @post = {}
8
7
  @source = source
9
8
  super parent, options, &block
10
9
  end
11
10
 
12
- def pre(stage, *commands)
13
- @pre[stage] ||= []
14
- @pre[stage] += commands
15
- end
16
-
17
- def post(stage, *commands)
18
- @post[stage] ||= []
19
- @post[stage] += commands
20
- end
21
-
22
11
  protected
23
12
 
24
13
  def install_sequence
@@ -83,20 +72,14 @@ module Sprinkle
83
72
  dress @options[:custom_install], :install
84
73
  end
85
74
 
86
- private
87
-
88
- def pre_commands(stage)
89
- dress @pre[stage] || [], :pre
90
- end
91
-
92
- def post_commands(stage)
93
- dress @post[stage] || [], :post
94
- end
75
+ protected
95
76
 
96
77
  def dress(commands, stage)
97
78
  commands.collect { |command| "bash -c 'cd #{build_dir} && #{command} >> #{@package.name}-#{stage}.log 2>&1'" }
98
79
  end
99
80
 
81
+ private
82
+
100
83
  def create_options(key, prefix)
101
84
  @options[key].inject(' ') { |m, option| m << "#{prefix}-#{option} "; m }
102
85
  end
@@ -15,7 +15,7 @@ module Sprinkle
15
15
 
16
16
  class Package
17
17
  include ArbitraryOptions
18
- attr_accessor :name, :provides, :installer, :dependencies
18
+ attr_accessor :name, :provides, :installer, :dependencies, :recommends
19
19
 
20
20
  def initialize(name, metadata = {}, &block)
21
21
  raise 'No package name supplied' unless name
@@ -23,6 +23,7 @@ module Sprinkle
23
23
  @name = name
24
24
  @provides = metadata[:provides]
25
25
  @dependencies = []
26
+ @recommends = []
26
27
  self.instance_eval &block
27
28
  end
28
29
 
@@ -35,12 +36,12 @@ module Sprinkle
35
36
  end
36
37
 
37
38
  def gem(name, options = {}, &block)
38
- @dependencies << :rubygems
39
+ @recommends << :rubygems
39
40
  @installer = Sprinkle::Installers::Gem.new(self, name, options, &block)
40
41
  end
41
42
 
42
43
  def source(source, options = {}, &block)
43
- @dependencies << :build_essential # REVISIT: should only be for Ubuntu/Debian, need platform specific bits here
44
+ @recommends << :build_essential # Ubuntu/Debian
44
45
  @installer = Sprinkle::Installers::Source.new(self, source, options, &block)
45
46
  end
46
47
 
@@ -56,11 +57,24 @@ module Sprinkle
56
57
  @dependencies.flatten!
57
58
  end
58
59
 
60
+ def recommends(*packages)
61
+ @recommends << packages
62
+ @recommends.flatten!
63
+ end
64
+
59
65
  def tree(depth = 1, &block)
60
66
  packages = []
61
67
 
68
+ @recommends.each do |dep|
69
+ package = PACKAGES[dep]
70
+ next unless package # skip missing recommended packages as they can be optional
71
+ block.call(self, package, depth) if block
72
+ packages << package.tree(depth + 1, &block)
73
+ end
74
+
62
75
  @dependencies.each do |dep|
63
76
  package = PACKAGES[dep]
77
+ raise "Package definition not found for key: #{dep}" unless package
64
78
  block.call(self, package, depth) if block
65
79
  packages << package.tree(depth + 1, &block)
66
80
  end
@@ -2,7 +2,7 @@ module Sprinkle #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 1
5
- TINY = 2
5
+ TINY = 4
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -27,16 +27,23 @@ describe Sprinkle::Installers::Apt do
27
27
  describe 'during installation' do
28
28
 
29
29
  before do
30
- @installer = create_apt 'ruby'
31
- @install_sequence = @installer.send :install_sequence
30
+ @installer = create_apt 'ruby' do
31
+ pre :install, 'op1'
32
+ post :install, 'op2'
33
+ end
34
+ @install_commands = @installer.send :install_commands
32
35
  end
33
36
 
34
37
  it 'should invoke the apt installer for all specified packages' do
35
- @install_sequence.should =~ /apt-get -qyu install ruby/
38
+ @install_commands.should =~ /apt-get -qyu install ruby/
36
39
  end
37
40
 
38
41
  it 'should specify a non interactive mode to the apt installer' do
39
- @install_sequence.should =~ /DEBIAN_FRONTEND=noninteractive/
42
+ @install_commands.should =~ /DEBIAN_FRONTEND=noninteractive/
43
+ end
44
+
45
+ it 'should automatically insert pre/post commands for the specified package' do
46
+ @installer.send(:install_sequence).should == [ 'op1', %(DEBCONF_TERSE='yes' DEBIAN_PRIORITY='critical' DEBIAN_FRONTEND=noninteractive apt-get -qyu install ruby), 'op2' ]
40
47
  end
41
48
 
42
49
  it 'should install a specific version if defined'
@@ -5,11 +5,11 @@ describe Sprinkle::Installers::Gem do
5
5
  before do
6
6
  @gem = 'rails'
7
7
  @version = '2.0.2'
8
- @options = { :source => 'http://gems.github.com/' }
8
+ @options = { :source => 'http://gems.github.com/', :repository => '/tmp/gems' }
9
9
  end
10
10
 
11
11
  def create_gem(gem, version = nil, options = {}, &block)
12
- @package = mock(Sprinkle::Package, :name => gem, :version => version, :source => nil)
12
+ @package = mock(Sprinkle::Package, :name => gem, :version => version, :source => nil, :repository => nil)
13
13
  Sprinkle::Installers::Gem.new(@package, gem, options, &block)
14
14
  end
15
15
 
@@ -31,6 +31,10 @@ describe Sprinkle::Installers::Gem do
31
31
  @installer.source.should == 'http://gems.github.com/'
32
32
  end
33
33
 
34
+ it 'should optionally store the repository location where gems are to be installed' do
35
+ @installer.repository.should == @options[:repository]
36
+ end
37
+
34
38
  end
35
39
 
36
40
  describe 'during installation' do
@@ -38,11 +42,18 @@ describe Sprinkle::Installers::Gem do
38
42
  describe 'without a version' do
39
43
 
40
44
  before do
41
- @installer = create_gem @gem
45
+ @installer = create_gem @gem do
46
+ pre :install, 'op1'
47
+ post :install, 'op2'
48
+ end
49
+ end
50
+
51
+ it 'should invoke the gem installer for the specified package' do
52
+ @installer.send(:install_commands).should == "gem install #{@gem}"
42
53
  end
43
54
 
44
- it 'should invoke the gem installer for all specified package' do
45
- @installer.send(:install_sequence).should == "gem install #{@gem}"
55
+ it 'should automatically insert pre/post commands for the specified package' do
56
+ @installer.send(:install_sequence).should == [ 'op1', "gem install #{@gem}", 'op2' ]
46
57
  end
47
58
 
48
59
  end
@@ -54,7 +65,7 @@ describe Sprinkle::Installers::Gem do
54
65
  end
55
66
 
56
67
  it 'should install a specific version if defined' do
57
- @installer.send(:install_sequence).should == "gem install #{@gem} --version '#{@version}'"
68
+ @installer.send(:install_commands).should == "gem install #{@gem} --version '#{@version}'"
58
69
  end
59
70
 
60
71
  end
@@ -86,7 +86,7 @@ describe Sprinkle::Installers::Installer do
86
86
 
87
87
  end
88
88
 
89
- describe Sprinkle::Installers::Installer, 'during installation' do
89
+ describe 'during installation' do
90
90
 
91
91
  it 'should request the install sequence from the concrete class' do
92
92
  @installer.should_receive(:install_sequence).and_return(@sequence)
@@ -27,12 +27,19 @@ describe Sprinkle::Installers::Rpm do
27
27
  describe 'during installation' do
28
28
 
29
29
  before do
30
- @installer = create_rpm 'ruby'
31
- @install_sequence = @installer.send :install_sequence
30
+ @installer = create_rpm 'ruby' do
31
+ pre :install, 'op1'
32
+ post :install, 'op2'
33
+ end
34
+ @install_commands = @installer.send :install_commands
35
+ end
36
+
37
+ it 'should invoke the rpm installer for all specified packages' do
38
+ @install_commands.should =~ /rpm -Uvh ruby/
32
39
  end
33
40
 
34
- it 'should invoke the apt installer for all specified packages' do
35
- @install_sequence.should =~ /rpm -Uvh ruby/
41
+ it 'should automatically insert pre/post commands for the specified package' do
42
+ @installer.send(:install_sequence).should == [ 'op1', 'rpm -Uvh ruby', 'op2' ]
36
43
  end
37
44
 
38
45
  it 'should specify a non interactive mode to the apt installer'
@@ -9,7 +9,7 @@ describe Sprinkle::Package do
9
9
  @opts = { }
10
10
  end
11
11
 
12
- describe Sprinkle::Package, 'when created' do
12
+ describe 'when created' do
13
13
 
14
14
  it 'should be invalid without a block descriptor' do
15
15
  lambda { package @name }.should raise_error
@@ -48,6 +48,13 @@ describe Sprinkle::Package do
48
48
  pkg.dependencies.should == [:webserver, :database]
49
49
  end
50
50
 
51
+ it 'should optionally accept recommended dependencies' do
52
+ pkg = package @name do
53
+ recommends :webserver, :database
54
+ end
55
+ pkg.recommends.should == [:webserver, :database]
56
+ end
57
+
51
58
  it 'should optionally define a virtual package implementation' do
52
59
  pkg = package @name, :provides => :database do; end
53
60
  pkg.provides.should == :database
@@ -60,7 +67,7 @@ describe Sprinkle::Package do
60
67
 
61
68
  end
62
69
 
63
- describe Sprinkle::Package, 'helper method' do
70
+ describe 'helper method' do
64
71
 
65
72
  it 'should added new packages to the global package hash' do
66
73
  pkg = package @name do; end
@@ -74,7 +81,7 @@ describe Sprinkle::Package do
74
81
 
75
82
  end
76
83
 
77
- describe Sprinkle::Package, 'installer configuration' do
84
+ describe 'installer configuration' do
78
85
 
79
86
  it 'should optionally accept an apt installer' do
80
87
  pkg = package @name do
@@ -110,7 +117,7 @@ describe Sprinkle::Package do
110
117
 
111
118
  end
112
119
 
113
- describe Sprinkle::Package, 'with a source installer' do
120
+ describe 'with a source installer' do
114
121
 
115
122
  it 'should optionally accept a block containing customisations' do
116
123
  pkg = package @name do
@@ -120,27 +127,27 @@ describe Sprinkle::Package do
120
127
  pkg.installer.class.should == Sprinkle::Installers::Source
121
128
  end
122
129
 
123
- it 'should automatically add a build essential dependency' do
130
+ it 'should automatically add a build essential recommendation' do
124
131
  pkg = package @name do
125
132
  source 'archive'
126
133
  end
127
- pkg.dependencies.should include(:build_essential)
134
+ pkg.recommends.should include(:build_essential)
128
135
  end
129
136
 
130
137
  end
131
138
 
132
- describe Sprinkle::Package, 'with an gem installer' do
139
+ describe 'with an gem installer' do
133
140
 
134
- it 'should automatically add a rubygems dependency' do
141
+ it 'should automatically add a rubygems recommendation' do
135
142
  pkg = package @name do
136
143
  gem 'gem'
137
144
  end
138
- pkg.dependencies.should include(:rubygems)
145
+ pkg.recommends.should include(:rubygems)
139
146
  end
140
147
 
141
148
  end
142
149
 
143
- describe Sprinkle::Package, 'when processing' do
150
+ describe 'when processing' do
144
151
 
145
152
  before do
146
153
  @deployment = mock(Sprinkle::Deployment)
@@ -149,7 +156,7 @@ describe Sprinkle::Package do
149
156
  @package = package @name do; end
150
157
  end
151
158
 
152
- describe Sprinkle::Package, 'with an installer' do
159
+ describe 'with an installer' do
153
160
 
154
161
  before do
155
162
  @package.installer = @installer
@@ -168,7 +175,7 @@ describe Sprinkle::Package do
168
175
  end
169
176
  end
170
177
 
171
- describe Sprinkle::Package, 'without an installer' do
178
+ describe 'without an installer' do
172
179
 
173
180
  it 'should not request the installer to process if the package is a metapackage' do
174
181
  @installer.should_not_receive(:process)
@@ -179,18 +186,32 @@ describe Sprinkle::Package do
179
186
 
180
187
  end
181
188
 
182
- describe Sprinkle::Package, 'hierarchies' do
189
+ describe 'hierarchies' do
183
190
 
184
191
  before do
185
192
  @a = package :a do; requires :b; end
186
193
  @b = package :b do; requires :c; end
187
- @c = package :c do; end
194
+ @c = package :c do; recommends :d; end
195
+ @d = package :d do; end
188
196
  end
189
197
 
190
198
  it 'should be able to return a dependency hierarchy tree' do
191
- @a.tree.flatten.should == [ @c, @b, @a ]
192
- @b.tree.flatten.should == [ @c, @b ]
193
- @c.tree.flatten.should == [ @c ]
199
+ @a.tree.flatten.should == [ @d, @c, @b, @a ]
200
+ @b.tree.flatten.should == [ @d, @c, @b ]
201
+ @c.tree.flatten.should == [ @d, @c ]
202
+ @d.tree.flatten.should == [ @d ]
203
+ end
204
+
205
+ describe 'with missing recommendations' do
206
+
207
+ before do
208
+ @d.recommends :e
209
+ end
210
+
211
+ it 'should ignore missing recommendations' do
212
+ @d.tree.flatten.should == [ @d ]
213
+ end
214
+
194
215
  end
195
216
 
196
217
  it 'should optionally accept a block to call upon item in the tree during hierarchy traversal' do
@@ -198,7 +219,7 @@ describe Sprinkle::Package do
198
219
  @a.tree do
199
220
  @count += 1
200
221
  end
201
- @count.should == 2
222
+ @count.should == 3
202
223
  end
203
224
 
204
225
  it 'should maintain a depth count of how deep the hierarchy is' do
@@ -208,4 +229,19 @@ describe Sprinkle::Package do
208
229
 
209
230
  end
210
231
 
232
+ describe 'with missing dependencies' do
233
+
234
+ before do
235
+ @pkg = package @name do
236
+ gem 'gem'
237
+ requires :missing
238
+ end
239
+ end
240
+
241
+ it 'should raise an error if a package is missing' do
242
+ lambda { @pkg.tree }.should raise_error
243
+ end
244
+
245
+ end
246
+
211
247
  end
data/sprinkle.gemspec CHANGED
@@ -1,27 +1,43 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{sprinkle}
3
- s.version = "0.1.2"
4
-
5
- s.specification_version = 2 if s.respond_to? :specification_version=
3
+ s.version = "0.1.4"
6
4
 
7
5
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
6
  s.authors = ["Marcus Crafter"]
9
- s.date = %q{2008-06-03}
7
+ s.date = %q{2008-07-13}
10
8
  s.default_executable = %q{sprinkle}
11
9
  s.description = %q{Ruby DSL based software provisioning tool}
12
10
  s.email = ["crafterm@redartisan.com"]
13
11
  s.executables = ["sprinkle"]
14
12
  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"]
13
+ 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/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"]
16
14
  s.has_rdoc = true
17
15
  s.homepage = %q{http://sprinkle.rubyforge.org}
18
16
  s.rdoc_options = ["--main", "README.txt"]
19
17
  s.require_paths = ["lib"]
20
18
  s.rubyforge_project = %q{sprinkle}
21
- s.rubygems_version = %q{1.1.1}
19
+ s.rubygems_version = %q{1.2.0}
22
20
  s.summary = %q{Ruby DSL based software provisioning tool}
23
21
 
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"])
22
+ if s.respond_to? :specification_version then
23
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
24
+ s.specification_version = 2
25
+
26
+ if current_version >= 3 then
27
+ s.add_runtime_dependency(%q<activesupport>, [">= 2.0.2"])
28
+ s.add_runtime_dependency(%q<highline>, [">= 1.4.0"])
29
+ s.add_runtime_dependency(%q<capistrano>, [">= 2.2.0"])
30
+ s.add_development_dependency(%q<hoe>, [">= 1.7.0"])
31
+ else
32
+ s.add_dependency(%q<activesupport>, [">= 2.0.2"])
33
+ s.add_dependency(%q<highline>, [">= 1.4.0"])
34
+ s.add_dependency(%q<capistrano>, [">= 2.2.0"])
35
+ s.add_dependency(%q<hoe>, [">= 1.7.0"])
36
+ end
37
+ else
38
+ s.add_dependency(%q<activesupport>, [">= 2.0.2"])
39
+ s.add_dependency(%q<highline>, [">= 1.4.0"])
40
+ s.add_dependency(%q<capistrano>, [">= 2.2.0"])
41
+ s.add_dependency(%q<hoe>, [">= 1.7.0"])
42
+ end
27
43
  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.2
4
+ version: 0.1.4
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-06-03 00:00:00 -07:00
12
+ date: 2008-07-13 00:00:00 -07:00
13
13
  default_executable: sprinkle
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -39,6 +39,15 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: 2.2.0
41
41
  version:
42
+ - !ruby/object:Gem::Dependency
43
+ name: hoe
44
+ version_requirement:
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 1.7.0
50
+ version:
42
51
  description: Ruby DSL based software provisioning tool
43
52
  email:
44
53
  - crafterm@redartisan.com
@@ -69,7 +78,6 @@ files:
69
78
  - examples/rails/packages/search.rb
70
79
  - examples/rails/packages/server.rb
71
80
  - examples/rails/rails.rb
72
- - examples/sprinkle/deploy.rb
73
81
  - examples/sprinkle/sprinkle.rb
74
82
  - lib/sprinkle.rb
75
83
  - lib/sprinkle/actors/capistrano.rb
@@ -112,7 +120,6 @@ files:
112
120
  - tasks/deployment.rake
113
121
  - tasks/environment.rake
114
122
  - tasks/rspec.rake
115
- - thoughts.txt
116
123
  has_rdoc: true
117
124
  homepage: http://sprinkle.rubyforge.org
118
125
  post_install_message:
@@ -136,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
143
  requirements: []
137
144
 
138
145
  rubyforge_project: sprinkle
139
- rubygems_version: 1.0.1
146
+ rubygems_version: 1.2.0
140
147
  signing_key:
141
148
  specification_version: 2
142
149
  summary: Ruby DSL based software provisioning tool