crafterm-sprinkle 0.1.2 → 0.1.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/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