powcloud-sprinkle 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. data/.gitignore +5 -0
  2. data/CREDITS +33 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README.markdown +241 -0
  5. data/Rakefile +50 -0
  6. data/VERSION +1 -0
  7. data/bin/sprinkle +90 -0
  8. data/examples/packages/build_essential.rb +9 -0
  9. data/examples/packages/databases/mysql.rb +13 -0
  10. data/examples/packages/databases/sqlite3.rb +16 -0
  11. data/examples/packages/phusion.rb +55 -0
  12. data/examples/packages/ruby/rails.rb +9 -0
  13. data/examples/packages/ruby/ruby.rb +17 -0
  14. data/examples/packages/ruby/rubygems.rb +17 -0
  15. data/examples/packages/scm/git.rb +11 -0
  16. data/examples/packages/scm/subversion.rb +4 -0
  17. data/examples/packages/servers/apache.rb +15 -0
  18. data/examples/rails/README +15 -0
  19. data/examples/rails/deploy.rb +2 -0
  20. data/examples/rails/packages/database.rb +9 -0
  21. data/examples/rails/packages/essential.rb +9 -0
  22. data/examples/rails/packages/rails.rb +29 -0
  23. data/examples/rails/packages/scm.rb +11 -0
  24. data/examples/rails/packages/search.rb +11 -0
  25. data/examples/rails/packages/server.rb +28 -0
  26. data/examples/rails/rails.rb +73 -0
  27. data/examples/sprinkle/sprinkle.rb +38 -0
  28. data/lib/sprinkle/actors/actors.rb +17 -0
  29. data/lib/sprinkle/actors/capistrano.rb +140 -0
  30. data/lib/sprinkle/actors/local.rb +37 -0
  31. data/lib/sprinkle/actors/ssh.rb +123 -0
  32. data/lib/sprinkle/actors/vlad.rb +78 -0
  33. data/lib/sprinkle/configurable.rb +31 -0
  34. data/lib/sprinkle/deployment.rb +73 -0
  35. data/lib/sprinkle/extensions/arbitrary_options.rb +10 -0
  36. data/lib/sprinkle/extensions/array.rb +5 -0
  37. data/lib/sprinkle/extensions/blank_slate.rb +5 -0
  38. data/lib/sprinkle/extensions/dsl_accessor.rb +15 -0
  39. data/lib/sprinkle/extensions/string.rb +10 -0
  40. data/lib/sprinkle/extensions/symbol.rb +7 -0
  41. data/lib/sprinkle/installers/apt.rb +52 -0
  42. data/lib/sprinkle/installers/binary.rb +46 -0
  43. data/lib/sprinkle/installers/bsd_port.rb +33 -0
  44. data/lib/sprinkle/installers/deb.rb +38 -0
  45. data/lib/sprinkle/installers/freebsd_pkg.rb +37 -0
  46. data/lib/sprinkle/installers/freebsd_portinstall.rb +36 -0
  47. data/lib/sprinkle/installers/gem.rb +64 -0
  48. data/lib/sprinkle/installers/install_package.rb +79 -0
  49. data/lib/sprinkle/installers/installer.rb +120 -0
  50. data/lib/sprinkle/installers/mac_port.rb +38 -0
  51. data/lib/sprinkle/installers/noop.rb +20 -0
  52. data/lib/sprinkle/installers/openbsd_pkg.rb +47 -0
  53. data/lib/sprinkle/installers/opensolaris_pkg.rb +43 -0
  54. data/lib/sprinkle/installers/push_text.rb +45 -0
  55. data/lib/sprinkle/installers/rake.rb +37 -0
  56. data/lib/sprinkle/installers/rpm.rb +37 -0
  57. data/lib/sprinkle/installers/smart.rb +29 -0
  58. data/lib/sprinkle/installers/source.rb +190 -0
  59. data/lib/sprinkle/installers/transfer.rb +164 -0
  60. data/lib/sprinkle/installers/yum.rb +37 -0
  61. data/lib/sprinkle/package.rb +309 -0
  62. data/lib/sprinkle/policy.rb +125 -0
  63. data/lib/sprinkle/script.rb +23 -0
  64. data/lib/sprinkle/verifiers/directory.rb +16 -0
  65. data/lib/sprinkle/verifiers/executable.rb +53 -0
  66. data/lib/sprinkle/verifiers/file.rb +26 -0
  67. data/lib/sprinkle/verifiers/package.rb +26 -0
  68. data/lib/sprinkle/verifiers/process.rb +21 -0
  69. data/lib/sprinkle/verifiers/rpm.rb +21 -0
  70. data/lib/sprinkle/verifiers/ruby.rb +25 -0
  71. data/lib/sprinkle/verifiers/symlink.rb +30 -0
  72. data/lib/sprinkle/verify.rb +114 -0
  73. data/lib/sprinkle.rb +32 -0
  74. data/script/console +8 -0
  75. data/script/destroy +14 -0
  76. data/script/generate +14 -0
  77. data/spec/spec.opts +1 -0
  78. data/spec/spec_helper.rb +17 -0
  79. data/spec/sprinkle/actors/capistrano_spec.rb +265 -0
  80. data/spec/sprinkle/actors/local_spec.rb +29 -0
  81. data/spec/sprinkle/configurable_spec.rb +46 -0
  82. data/spec/sprinkle/deployment_spec.rb +80 -0
  83. data/spec/sprinkle/extensions/array_spec.rb +19 -0
  84. data/spec/sprinkle/extensions/string_spec.rb +21 -0
  85. data/spec/sprinkle/installers/apt_spec.rb +70 -0
  86. data/spec/sprinkle/installers/bsd_port_spec.rb +42 -0
  87. data/spec/sprinkle/installers/freebsd_pkg_spec.rb +49 -0
  88. data/spec/sprinkle/installers/freebsd_portinstall_spec.rb +42 -0
  89. data/spec/sprinkle/installers/gem_spec.rb +107 -0
  90. data/spec/sprinkle/installers/installer_spec.rb +151 -0
  91. data/spec/sprinkle/installers/mac_port_spec.rb +42 -0
  92. data/spec/sprinkle/installers/noop_spec.rb +23 -0
  93. data/spec/sprinkle/installers/openbsd_pkg_spec.rb +49 -0
  94. data/spec/sprinkle/installers/opensolaris_pkg_spec.rb +49 -0
  95. data/spec/sprinkle/installers/push_text_spec.rb +66 -0
  96. data/spec/sprinkle/installers/rake_spec.rb +29 -0
  97. data/spec/sprinkle/installers/rpm_spec.rb +50 -0
  98. data/spec/sprinkle/installers/source_spec.rb +371 -0
  99. data/spec/sprinkle/installers/transfer_spec.rb +98 -0
  100. data/spec/sprinkle/installers/yum_spec.rb +49 -0
  101. data/spec/sprinkle/package_spec.rb +466 -0
  102. data/spec/sprinkle/policy_spec.rb +126 -0
  103. data/spec/sprinkle/script_spec.rb +51 -0
  104. data/spec/sprinkle/sprinkle_spec.rb +25 -0
  105. data/spec/sprinkle/verify_spec.rb +174 -0
  106. metadata +244 -0
@@ -0,0 +1,126 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe Sprinkle::Policy do
4
+ include Sprinkle::Policy
5
+
6
+ before do
7
+ @name = 'a policy'
8
+ end
9
+
10
+ describe 'when created' do
11
+
12
+ it 'should be invalid without a name' do
13
+ lambda { policy nil }.should raise_error
14
+ end
15
+
16
+ it 'should be invalid without role definitions' do
17
+ lambda { policy @name do; end }.should raise_error
18
+ lambda { policy @name, :roles => :app do; end }.should_not raise_error
19
+ end
20
+
21
+ it 'should optionally accept package dependencies' do
22
+ p = policy @name, :roles => :app do; end
23
+ p.should respond_to(:requires)
24
+ p.requires :appserver
25
+ p.packages.should == [ :appserver ]
26
+ end
27
+
28
+ it 'should optionally accept package dependencies with versions' do
29
+ p = policy @name, :roles => :app do; end
30
+ p.requires :appserver, :version => 2
31
+ p.packages.should == [ :appserver ]
32
+ pending 'requires version checking implementation'
33
+ end
34
+
35
+ it 'should add itself to the global policy list' do
36
+ sz = Sprinkle::Policy::POLICIES.size
37
+ p = policy @name, :roles => :app do; end
38
+ Sprinkle::Policy::POLICIES.size.should == sz + 1
39
+ Sprinkle::Policy::POLICIES.last.should == p
40
+ end
41
+
42
+ end
43
+
44
+ describe 'with packages' do
45
+ include Sprinkle::Package
46
+
47
+ before do
48
+ @deployment = mock(Sprinkle::Deployment)
49
+ Sprinkle::Package::PACKAGES.clear # reset full package list before each spec is run
50
+
51
+ @a = package :a do; requires :b; requires :c; end
52
+ @b = package :b, :provides => :xyz do; end
53
+ @c = package :c, :provides => :abc do; end
54
+ @d = package :d, :provides => :abc do; end
55
+
56
+ @policy = policy :test, :roles => :app do; requires :a; end
57
+ $terminal.stub!(:choose).and_return(:c) # stub out highline asking questions
58
+ end
59
+
60
+ describe 'when applying' do
61
+ include Sprinkle::Package
62
+
63
+ it 'should determine the packages to install via the hierarchy dependency tree of each package in the policy' do
64
+ @a.should_receive(:process).and_return
65
+ @b.should_receive(:process).and_return
66
+ @c.should_receive(:process).and_return
67
+ @d.should_not_receive(:process)
68
+ end
69
+
70
+ it 'should normalize (ie remove duplicates from) the installation order of all packages including dependencies' do
71
+ @e = package :e do; requires :b; end
72
+ @policy.requires :e
73
+
74
+ @a.should_receive(:process).once.and_return
75
+ @b.should_receive(:process).once.and_return
76
+ @c.should_receive(:process).once.and_return
77
+ @d.should_not_receive(:process)
78
+ @e.should_receive(:process).once.and_return
79
+ end
80
+ end
81
+
82
+ describe 'containing package dependencies with versions' do
83
+
84
+ it 'should be invalid if the specified package does not exist'
85
+ it 'should ignore any packages of the same name that have other versions'
86
+ it 'should select the correct package version when applying'
87
+
88
+ end
89
+
90
+ describe 'containing virtual packages' do
91
+
92
+ it 'should automatically select a concrete package implementation for a virtual one when there exists only one possible selection' do
93
+ @policy = policy :virtual, :roles => :app do; requires :xyz; end
94
+ Sprinkle::Package::PACKAGES[:xyz].should == [ @b ]
95
+ end
96
+
97
+ it 'should ask the user for the concrete package implementation to use for a virtual one when more than one possible choice exists' do
98
+ @policy = policy :virtual, :roles => :app do; requires :abc; end
99
+ Sprinkle::Package::PACKAGES[:abc].should include(@c)
100
+ Sprinkle::Package::PACKAGES[:abc].should include(@d)
101
+ $terminal.should_receive(:choose).and_return(:c)
102
+ end
103
+
104
+ end
105
+
106
+ after do
107
+ @policy.process(@deployment)
108
+ end
109
+ end
110
+ end
111
+
112
+ describe Sprinkle::Policy, 'with missing packages' do
113
+
114
+ before do
115
+ @deployment = mock(Sprinkle::Deployment)
116
+ Sprinkle::Package::PACKAGES.clear # reset full package list before each spec is run
117
+
118
+ @policy = policy :test, :roles => :app do; requires :z; end
119
+ $terminal.stub!(:choose).and_return(:c) # stub out highline asking questions
120
+ end
121
+
122
+ it 'should raise an error if a package is missing' do
123
+ lambda { @policy.process(@deployment) }.should raise_error
124
+ end
125
+
126
+ end
@@ -0,0 +1,51 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe Sprinkle::Script, 'class' do
4
+
5
+ it 'should define a entry point into the system' do
6
+ Sprinkle::Script.should respond_to(:sprinkle)
7
+ end
8
+
9
+ end
10
+
11
+ describe Sprinkle::Script, 'when given a script' do
12
+
13
+ before do
14
+ @script = 'script'
15
+ @filename = 'filename'
16
+
17
+ @sprinkle = Sprinkle::Script.new
18
+ Sprinkle::Script.stub!(:new).and_return(@sprinkle)
19
+ end
20
+
21
+ it 'should create a new sprinkle instance' do
22
+ Sprinkle::Script.should_receive(:new).and_return(@sprinkle)
23
+ Sprinkle::Script.sprinkle @script
24
+ end
25
+
26
+ it 'should evaulate the sprinkle script against the instance' do
27
+ @sprinkle.should_receive(:instance_eval).and_return
28
+ Sprinkle::Script.sprinkle @script
29
+ end
30
+
31
+ it 'should specify the filename if given for line number errors' do
32
+ @sprinkle.should_receive(:instance_eval).with(@script, @filename).and_return
33
+ Sprinkle::Script.sprinkle @script, @filename
34
+ end
35
+
36
+ it 'should specify a filename of __SCRIPT__ by default if none is provided' do
37
+ @sprinkle.should_receive(:instance_eval).with(@script, '__SCRIPT__').and_return
38
+ Sprinkle::Script.sprinkle @script
39
+ end
40
+
41
+ it 'should automatically run in production mode by default' do
42
+ @sprinkle.should_receive(:instance_eval).with(@script, '__SCRIPT__').and_return
43
+ Sprinkle::Script.sprinkle @script
44
+ end
45
+
46
+ it 'should ask the Sprinkle instance to process the data from the script' do
47
+ @sprinkle.should_receive(:sprinkle)
48
+ Sprinkle::Script.sprinkle @script
49
+ end
50
+
51
+ end
@@ -0,0 +1,25 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe Sprinkle do
4
+
5
+ it 'should automatically extend Object to support package, policy and deployment DSL keywords' do
6
+ %w( package policy deployment ).each do |keyword|
7
+ Object.should respond_to(keyword.to_sym)
8
+ end
9
+ end
10
+
11
+ it 'should default to production mode' do
12
+ Sprinkle::OPTIONS[:testing].should be_false
13
+ end
14
+
15
+ it 'should automatically create a logger object on Kernel' do
16
+ Object.should respond_to(:logger)
17
+ logger.should_not be_nil
18
+ logger.class.should == ActiveSupport::BufferedLogger
19
+ end
20
+
21
+ it 'should create a logger of level INFO' do
22
+ logger.level.should == ActiveSupport::BufferedLogger::Severity::INFO
23
+ end
24
+
25
+ end
@@ -0,0 +1,174 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe Sprinkle::Verify do
4
+ before do
5
+ @name = :package
6
+ @package = package @name do
7
+ gem 'nonexistent'
8
+ verify 'moo' do
9
+ # Check a file exists
10
+ has_file 'my_file.txt'
11
+
12
+ # Check that a file contains a substring
13
+ file_contains 'my_file.txt', 'A sunny day on the lower east-side'
14
+
15
+ # Check a directory exists
16
+ has_directory 'mydir'
17
+
18
+ # Check a symlink exists
19
+ has_symlink 'mypointer'
20
+
21
+ # Check a symlink points to a certain file
22
+ has_symlink 'mypointer', 'myfile'
23
+
24
+ # Check if an executable exists
25
+ has_executable '/usr/bin/ruby'
26
+
27
+ # Check if a global executable exists (in PATH)
28
+ has_executable 'rails'
29
+
30
+ # Check for a process
31
+ has_process 'httpd'
32
+
33
+ # Check that ruby can include files
34
+ ruby_can_load 'a', 'b', 'c'
35
+
36
+ # Check that a gem exists
37
+ has_gem 'rails'
38
+ has_gem 'rails', '2.1.0'
39
+
40
+ # Check for a certain RPM package
41
+ has_rpm 'ntp'
42
+ end
43
+ end
44
+ @verification = @package.verifications[0]
45
+ @delivery = mock(Sprinkle::Deployment, :process => true)
46
+ @verification.delivery = @delivery
47
+ end
48
+
49
+ describe 'when created' do
50
+ it 'should raise error without a block' do
51
+ lambda { Verify.new(nil, '') }.should raise_error
52
+ end
53
+ end
54
+
55
+ describe 'with checks' do
56
+ it 'should do a "test -f" on the has_file check' do
57
+ @verification.commands.should include('test -f my_file.txt')
58
+ end
59
+
60
+ it 'should do a grep to see if a file contains a text string' do
61
+ @verification.commands.should include("grep 'A sunny day on the lower east-side' my_file.txt")
62
+ end
63
+
64
+ it 'should do a "test -d" on the has_directory check' do
65
+ @verification.commands.should include('test -d mydir')
66
+ end
67
+
68
+ it 'should do a "test -L" to check something is a symbolic link' do
69
+ @verification.commands.should include('test -L mypointer')
70
+ end
71
+
72
+ it 'should do a test equality to check a symlink points to a specific file' do
73
+ @verification.commands.should include("test 'myfile' = `readlink mypointer`")
74
+ end
75
+
76
+ it 'should do a "test -x" to check for an executable' do
77
+ @verification.commands.should include("test -x /usr/bin/ruby")
78
+ end
79
+
80
+ it 'should test the "which" command to look for a global executable' do
81
+ @verification.commands.should include('[ -n "`echo \`which rails\``" ]')
82
+ end
83
+
84
+ it 'should test the process list to find a process' do
85
+ @verification.commands.should include("ps aux | grep 'httpd' | grep -v grep")
86
+ end
87
+
88
+ it 'should check if ruby can include a, b, c' do
89
+ @verification.commands.should include("ruby -e \"require 'rubygems';require 'a';require 'b';require 'c'\"")
90
+ end
91
+
92
+ it 'should check that a ruby gem is installed' do
93
+ @verification.commands.should include("sudo gem list | grep -e '^rails (.*.*)$'")
94
+ @verification.commands.should include("sudo gem list | grep -e '^rails (.*2\\.1\\.0.*)$'")
95
+ end
96
+
97
+ it 'should check that an RPM is installed' do
98
+ @verification.commands.should include("rpm -qa | grep ntp")
99
+ end
100
+ end
101
+
102
+ describe 'with configurations' do
103
+ # Make sure it includes Sprinkle::Configurable
104
+ it 'should respond to configurable methods' do
105
+ @verification.should respond_to(:defaults)
106
+ end
107
+
108
+ it 'should default padding option to 4' do
109
+ @verification.padding.should eql(4)
110
+ end
111
+ end
112
+
113
+ describe 'with process' do
114
+ it 'should raise an error when no delivery mechanism is set' do
115
+ @verification.instance_variable_set(:@delivery, nil)
116
+ lambda { @verification.process([]) }.should raise_error
117
+ end
118
+
119
+ describe 'when not testing' do
120
+ before do
121
+ # To be explicit
122
+ Sprinkle::OPTIONS[:testing] = false
123
+ end
124
+
125
+ it 'should call process on the delivery with the correct parameters' do
126
+ @delivery.should_receive(:process).with(@name, @verification.commands, [:app], true).once.and_return(true)
127
+ @verification.process([:app])
128
+ end
129
+
130
+ it 'should raise Sprinkle::VerificationFailed exception when commands fail' do
131
+ @delivery.should_receive(:process).once.and_return(false)
132
+ lambda { @verification.process([:app]) }.should raise_error(Sprinkle::VerificationFailed) do |error|
133
+ error.package.should eql(@package)
134
+ error.description.should eql('moo')
135
+ end
136
+ end
137
+ end
138
+
139
+ describe 'when testing' do
140
+ before do
141
+ Sprinkle::OPTIONS[:testing] = true
142
+ @logger = mock(ActiveSupport::BufferedLogger, :debug => true, :debug? => true)
143
+ end
144
+
145
+ it 'should not call process on the delivery' do
146
+ @delivery.should_not_receive(:process)
147
+ end
148
+
149
+ it 'should print the install sequence to the console' do
150
+ @verification.should_receive(:logger).twice.and_return(@logger)
151
+ end
152
+
153
+ after do
154
+ @verification.process([:app])
155
+ Sprinkle::OPTIONS[:testing] = false
156
+ end
157
+ end
158
+ end
159
+
160
+ describe 'with registering new verification modules' do
161
+ module MyModule
162
+ def rawr; end
163
+ end
164
+
165
+ it 'should not respond to rawr initially' do
166
+ @verification.should_not respond_to(:rawr)
167
+ end
168
+
169
+ it 'should respond to rawr after registering the module' do
170
+ Sprinkle::Verify.register(MyModule)
171
+ @verification.should respond_to(:rawr)
172
+ end
173
+ end
174
+ end
metadata ADDED
@@ -0,0 +1,244 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: powcloud-sprinkle
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
5
+ platform: ruby
6
+ authors:
7
+ - Marcus Crafter
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-02-08 00:00:00 +03:00
13
+ default_executable: sprinkle
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rspec
17
+ type: :development
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.2.9
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: activesupport
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 2.0.2
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: highline
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 1.4.0
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: capistrano
47
+ type: :runtime
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 2.5.5
54
+ version:
55
+ description: Ruby DSL based software provisioning tool
56
+ email: drush@powcloud.com
57
+ executables:
58
+ - sprinkle
59
+ extensions: []
60
+
61
+ extra_rdoc_files:
62
+ - README.markdown
63
+ files:
64
+ - .gitignore
65
+ - CREDITS
66
+ - MIT-LICENSE
67
+ - README.markdown
68
+ - Rakefile
69
+ - VERSION
70
+ - bin/sprinkle
71
+ - examples/packages/build_essential.rb
72
+ - examples/packages/databases/mysql.rb
73
+ - examples/packages/databases/sqlite3.rb
74
+ - examples/packages/phusion.rb
75
+ - examples/packages/ruby/rails.rb
76
+ - examples/packages/ruby/ruby.rb
77
+ - examples/packages/ruby/rubygems.rb
78
+ - examples/packages/scm/git.rb
79
+ - examples/packages/scm/subversion.rb
80
+ - examples/packages/servers/apache.rb
81
+ - examples/rails/README
82
+ - examples/rails/deploy.rb
83
+ - examples/rails/packages/database.rb
84
+ - examples/rails/packages/essential.rb
85
+ - examples/rails/packages/rails.rb
86
+ - examples/rails/packages/scm.rb
87
+ - examples/rails/packages/search.rb
88
+ - examples/rails/packages/server.rb
89
+ - examples/rails/rails.rb
90
+ - examples/sprinkle/sprinkle.rb
91
+ - lib/sprinkle.rb
92
+ - lib/sprinkle/actors/actors.rb
93
+ - lib/sprinkle/actors/capistrano.rb
94
+ - lib/sprinkle/actors/local.rb
95
+ - lib/sprinkle/actors/ssh.rb
96
+ - lib/sprinkle/actors/vlad.rb
97
+ - lib/sprinkle/configurable.rb
98
+ - lib/sprinkle/deployment.rb
99
+ - lib/sprinkle/extensions/arbitrary_options.rb
100
+ - lib/sprinkle/extensions/array.rb
101
+ - lib/sprinkle/extensions/blank_slate.rb
102
+ - lib/sprinkle/extensions/dsl_accessor.rb
103
+ - lib/sprinkle/extensions/string.rb
104
+ - lib/sprinkle/extensions/symbol.rb
105
+ - lib/sprinkle/installers/apt.rb
106
+ - lib/sprinkle/installers/binary.rb
107
+ - lib/sprinkle/installers/bsd_port.rb
108
+ - lib/sprinkle/installers/deb.rb
109
+ - lib/sprinkle/installers/freebsd_pkg.rb
110
+ - lib/sprinkle/installers/freebsd_portinstall.rb
111
+ - lib/sprinkle/installers/gem.rb
112
+ - lib/sprinkle/installers/install_package.rb
113
+ - lib/sprinkle/installers/installer.rb
114
+ - lib/sprinkle/installers/mac_port.rb
115
+ - lib/sprinkle/installers/noop.rb
116
+ - lib/sprinkle/installers/openbsd_pkg.rb
117
+ - lib/sprinkle/installers/opensolaris_pkg.rb
118
+ - lib/sprinkle/installers/push_text.rb
119
+ - lib/sprinkle/installers/rake.rb
120
+ - lib/sprinkle/installers/rpm.rb
121
+ - lib/sprinkle/installers/smart.rb
122
+ - lib/sprinkle/installers/source.rb
123
+ - lib/sprinkle/installers/transfer.rb
124
+ - lib/sprinkle/installers/yum.rb
125
+ - lib/sprinkle/package.rb
126
+ - lib/sprinkle/policy.rb
127
+ - lib/sprinkle/script.rb
128
+ - lib/sprinkle/verifiers/directory.rb
129
+ - lib/sprinkle/verifiers/executable.rb
130
+ - lib/sprinkle/verifiers/file.rb
131
+ - lib/sprinkle/verifiers/package.rb
132
+ - lib/sprinkle/verifiers/process.rb
133
+ - lib/sprinkle/verifiers/rpm.rb
134
+ - lib/sprinkle/verifiers/ruby.rb
135
+ - lib/sprinkle/verifiers/symlink.rb
136
+ - lib/sprinkle/verify.rb
137
+ - script/console
138
+ - script/destroy
139
+ - script/generate
140
+ - spec/spec.opts
141
+ - spec/spec_helper.rb
142
+ - spec/sprinkle/actors/capistrano_spec.rb
143
+ - spec/sprinkle/actors/local_spec.rb
144
+ - spec/sprinkle/configurable_spec.rb
145
+ - spec/sprinkle/deployment_spec.rb
146
+ - spec/sprinkle/extensions/array_spec.rb
147
+ - spec/sprinkle/extensions/string_spec.rb
148
+ - spec/sprinkle/installers/apt_spec.rb
149
+ - spec/sprinkle/installers/bsd_port_spec.rb
150
+ - spec/sprinkle/installers/freebsd_pkg_spec.rb
151
+ - spec/sprinkle/installers/freebsd_portinstall_spec.rb
152
+ - spec/sprinkle/installers/gem_spec.rb
153
+ - spec/sprinkle/installers/installer_spec.rb
154
+ - spec/sprinkle/installers/mac_port_spec.rb
155
+ - spec/sprinkle/installers/noop_spec.rb
156
+ - spec/sprinkle/installers/openbsd_pkg_spec.rb
157
+ - spec/sprinkle/installers/opensolaris_pkg_spec.rb
158
+ - spec/sprinkle/installers/push_text_spec.rb
159
+ - spec/sprinkle/installers/rake_spec.rb
160
+ - spec/sprinkle/installers/rpm_spec.rb
161
+ - spec/sprinkle/installers/source_spec.rb
162
+ - spec/sprinkle/installers/transfer_spec.rb
163
+ - spec/sprinkle/installers/yum_spec.rb
164
+ - spec/sprinkle/package_spec.rb
165
+ - spec/sprinkle/policy_spec.rb
166
+ - spec/sprinkle/script_spec.rb
167
+ - spec/sprinkle/sprinkle_spec.rb
168
+ - spec/sprinkle/verify_spec.rb
169
+ has_rdoc: true
170
+ homepage: http://github.com/powcloud/sprinkle
171
+ licenses: []
172
+
173
+ post_install_message:
174
+ rdoc_options:
175
+ - --charset=UTF-8
176
+ require_paths:
177
+ - lib
178
+ required_ruby_version: !ruby/object:Gem::Requirement
179
+ requirements:
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ version: "0"
183
+ version:
184
+ required_rubygems_version: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: "0"
189
+ version:
190
+ requirements: []
191
+
192
+ rubyforge_project: sprinkle
193
+ rubygems_version: 1.3.5
194
+ signing_key:
195
+ specification_version: 3
196
+ summary: Ruby DSL based software provisioning tool
197
+ test_files:
198
+ - spec/spec_helper.rb
199
+ - spec/sprinkle/actors/capistrano_spec.rb
200
+ - spec/sprinkle/actors/local_spec.rb
201
+ - spec/sprinkle/configurable_spec.rb
202
+ - spec/sprinkle/deployment_spec.rb
203
+ - spec/sprinkle/extensions/array_spec.rb
204
+ - spec/sprinkle/extensions/string_spec.rb
205
+ - spec/sprinkle/installers/apt_spec.rb
206
+ - spec/sprinkle/installers/bsd_port_spec.rb
207
+ - spec/sprinkle/installers/freebsd_pkg_spec.rb
208
+ - spec/sprinkle/installers/freebsd_portinstall_spec.rb
209
+ - spec/sprinkle/installers/gem_spec.rb
210
+ - spec/sprinkle/installers/installer_spec.rb
211
+ - spec/sprinkle/installers/mac_port_spec.rb
212
+ - spec/sprinkle/installers/noop_spec.rb
213
+ - spec/sprinkle/installers/openbsd_pkg_spec.rb
214
+ - spec/sprinkle/installers/opensolaris_pkg_spec.rb
215
+ - spec/sprinkle/installers/push_text_spec.rb
216
+ - spec/sprinkle/installers/rake_spec.rb
217
+ - spec/sprinkle/installers/rpm_spec.rb
218
+ - spec/sprinkle/installers/source_spec.rb
219
+ - spec/sprinkle/installers/transfer_spec.rb
220
+ - spec/sprinkle/installers/yum_spec.rb
221
+ - spec/sprinkle/package_spec.rb
222
+ - spec/sprinkle/policy_spec.rb
223
+ - spec/sprinkle/script_spec.rb
224
+ - spec/sprinkle/sprinkle_spec.rb
225
+ - spec/sprinkle/verify_spec.rb
226
+ - examples/packages/build_essential.rb
227
+ - examples/packages/databases/mysql.rb
228
+ - examples/packages/databases/sqlite3.rb
229
+ - examples/packages/phusion.rb
230
+ - examples/packages/ruby/rails.rb
231
+ - examples/packages/ruby/ruby.rb
232
+ - examples/packages/ruby/rubygems.rb
233
+ - examples/packages/scm/git.rb
234
+ - examples/packages/scm/subversion.rb
235
+ - examples/packages/servers/apache.rb
236
+ - examples/rails/deploy.rb
237
+ - examples/rails/packages/database.rb
238
+ - examples/rails/packages/essential.rb
239
+ - examples/rails/packages/rails.rb
240
+ - examples/rails/packages/scm.rb
241
+ - examples/rails/packages/search.rb
242
+ - examples/rails/packages/server.rb
243
+ - examples/rails/rails.rb
244
+ - examples/sprinkle/sprinkle.rb