dhill-sprinkle 0.3.3.1

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.
Files changed (118) hide show
  1. data/.gitignore +3 -0
  2. data/CREDITS +33 -0
  3. data/Gemfile +4 -0
  4. data/MIT-LICENSE +20 -0
  5. data/README.markdown +242 -0
  6. data/Rakefile +2 -0
  7. data/VERSION +1 -0
  8. data/bin/sprinkle +95 -0
  9. data/examples/packages/build_essential.rb +9 -0
  10. data/examples/packages/databases/mysql.rb +13 -0
  11. data/examples/packages/databases/sqlite3.rb +16 -0
  12. data/examples/packages/phusion.rb +55 -0
  13. data/examples/packages/ruby/rails.rb +9 -0
  14. data/examples/packages/ruby/ruby.rb +17 -0
  15. data/examples/packages/ruby/rubygems.rb +17 -0
  16. data/examples/packages/scm/git.rb +11 -0
  17. data/examples/packages/scm/subversion.rb +4 -0
  18. data/examples/packages/servers/apache.rb +15 -0
  19. data/examples/rails/README +15 -0
  20. data/examples/rails/deploy.rb +2 -0
  21. data/examples/rails/packages/database.rb +9 -0
  22. data/examples/rails/packages/essential.rb +9 -0
  23. data/examples/rails/packages/rails.rb +29 -0
  24. data/examples/rails/packages/scm.rb +11 -0
  25. data/examples/rails/packages/search.rb +11 -0
  26. data/examples/rails/packages/server.rb +28 -0
  27. data/examples/rails/rails.rb +73 -0
  28. data/examples/sprinkle/sprinkle.rb +38 -0
  29. data/lib/sprinkle.rb +3 -0
  30. data/lib/sprinkle/actors/actors.rb +17 -0
  31. data/lib/sprinkle/actors/capistrano.rb +146 -0
  32. data/lib/sprinkle/actors/local.rb +37 -0
  33. data/lib/sprinkle/actors/ssh.rb +177 -0
  34. data/lib/sprinkle/actors/vlad.rb +83 -0
  35. data/lib/sprinkle/configurable.rb +31 -0
  36. data/lib/sprinkle/deployment.rb +73 -0
  37. data/lib/sprinkle/extensions/arbitrary_options.rb +10 -0
  38. data/lib/sprinkle/extensions/array.rb +5 -0
  39. data/lib/sprinkle/extensions/blank_slate.rb +5 -0
  40. data/lib/sprinkle/extensions/dsl_accessor.rb +15 -0
  41. data/lib/sprinkle/extensions/string.rb +10 -0
  42. data/lib/sprinkle/extensions/symbol.rb +7 -0
  43. data/lib/sprinkle/installers/apt.rb +52 -0
  44. data/lib/sprinkle/installers/binary.rb +46 -0
  45. data/lib/sprinkle/installers/bsd_port.rb +33 -0
  46. data/lib/sprinkle/installers/deb.rb +41 -0
  47. data/lib/sprinkle/installers/freebsd_pkg.rb +37 -0
  48. data/lib/sprinkle/installers/freebsd_portinstall.rb +36 -0
  49. data/lib/sprinkle/installers/gem.rb +64 -0
  50. data/lib/sprinkle/installers/install_package.rb +79 -0
  51. data/lib/sprinkle/installers/installer.rb +123 -0
  52. data/lib/sprinkle/installers/mac_port.rb +38 -0
  53. data/lib/sprinkle/installers/noop.rb +20 -0
  54. data/lib/sprinkle/installers/openbsd_pkg.rb +47 -0
  55. data/lib/sprinkle/installers/opensolaris_pkg.rb +43 -0
  56. data/lib/sprinkle/installers/push_text.rb +45 -0
  57. data/lib/sprinkle/installers/rake.rb +37 -0
  58. data/lib/sprinkle/installers/replace_text.rb +45 -0
  59. data/lib/sprinkle/installers/rpm.rb +37 -0
  60. data/lib/sprinkle/installers/runner.rb +18 -0
  61. data/lib/sprinkle/installers/smart.rb +29 -0
  62. data/lib/sprinkle/installers/source.rb +201 -0
  63. data/lib/sprinkle/installers/transfer.rb +178 -0
  64. data/lib/sprinkle/installers/user.rb +15 -0
  65. data/lib/sprinkle/installers/yum.rb +37 -0
  66. data/lib/sprinkle/installers/zypper.rb +43 -0
  67. data/lib/sprinkle/package.rb +326 -0
  68. data/lib/sprinkle/policy.rb +125 -0
  69. data/lib/sprinkle/script.rb +23 -0
  70. data/lib/sprinkle/verifiers/apt.rb +21 -0
  71. data/lib/sprinkle/verifiers/directory.rb +16 -0
  72. data/lib/sprinkle/verifiers/executable.rb +53 -0
  73. data/lib/sprinkle/verifiers/file.rb +34 -0
  74. data/lib/sprinkle/verifiers/package.rb +26 -0
  75. data/lib/sprinkle/verifiers/process.rb +21 -0
  76. data/lib/sprinkle/verifiers/rpm.rb +21 -0
  77. data/lib/sprinkle/verifiers/ruby.rb +25 -0
  78. data/lib/sprinkle/verifiers/symlink.rb +30 -0
  79. data/lib/sprinkle/verify.rb +114 -0
  80. data/lib/sprinkle/version.rb +3 -0
  81. data/script/console +8 -0
  82. data/script/destroy +14 -0
  83. data/script/generate +14 -0
  84. data/spec/spec.opts +1 -0
  85. data/spec/spec_helper.rb +17 -0
  86. data/spec/sprinkle/actors/capistrano_spec.rb +265 -0
  87. data/spec/sprinkle/actors/local_spec.rb +29 -0
  88. data/spec/sprinkle/configurable_spec.rb +46 -0
  89. data/spec/sprinkle/deployment_spec.rb +80 -0
  90. data/spec/sprinkle/extensions/array_spec.rb +19 -0
  91. data/spec/sprinkle/extensions/string_spec.rb +21 -0
  92. data/spec/sprinkle/installers/apt_spec.rb +70 -0
  93. data/spec/sprinkle/installers/bsd_port_spec.rb +42 -0
  94. data/spec/sprinkle/installers/freebsd_pkg_spec.rb +49 -0
  95. data/spec/sprinkle/installers/freebsd_portinstall_spec.rb +42 -0
  96. data/spec/sprinkle/installers/gem_spec.rb +107 -0
  97. data/spec/sprinkle/installers/installer_spec.rb +151 -0
  98. data/spec/sprinkle/installers/mac_port_spec.rb +42 -0
  99. data/spec/sprinkle/installers/noop_spec.rb +23 -0
  100. data/spec/sprinkle/installers/openbsd_pkg_spec.rb +49 -0
  101. data/spec/sprinkle/installers/opensolaris_pkg_spec.rb +49 -0
  102. data/spec/sprinkle/installers/push_text_spec.rb +66 -0
  103. data/spec/sprinkle/installers/rake_spec.rb +29 -0
  104. data/spec/sprinkle/installers/replace_text_spec.rb +45 -0
  105. data/spec/sprinkle/installers/rpm_spec.rb +50 -0
  106. data/spec/sprinkle/installers/runner_spec.rb +31 -0
  107. data/spec/sprinkle/installers/source_spec.rb +371 -0
  108. data/spec/sprinkle/installers/transfer_spec.rb +98 -0
  109. data/spec/sprinkle/installers/yum_spec.rb +49 -0
  110. data/spec/sprinkle/installers/zypper_spec.rb +49 -0
  111. data/spec/sprinkle/package_spec.rb +474 -0
  112. data/spec/sprinkle/policy_spec.rb +126 -0
  113. data/spec/sprinkle/script_spec.rb +51 -0
  114. data/spec/sprinkle/sprinkle_spec.rb +25 -0
  115. data/spec/sprinkle/verify_spec.rb +173 -0
  116. data/sprinkle-0.3.3.1.gem +0 -0
  117. data/sprinkle.gemspec +26 -0
  118. metadata +281 -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,173 @@
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 -C httpd")
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 'rails' --installed --version '2.1.0' > /dev/null")
94
+ end
95
+
96
+ it 'should check that an RPM is installed' do
97
+ @verification.commands.should include("rpm -qa | grep ntp")
98
+ end
99
+ end
100
+
101
+ describe 'with configurations' do
102
+ # Make sure it includes Sprinkle::Configurable
103
+ it 'should respond to configurable methods' do
104
+ @verification.should respond_to(:defaults)
105
+ end
106
+
107
+ it 'should default padding option to 4' do
108
+ @verification.padding.should eql(4)
109
+ end
110
+ end
111
+
112
+ describe 'with process' do
113
+ it 'should raise an error when no delivery mechanism is set' do
114
+ @verification.instance_variable_set(:@delivery, nil)
115
+ lambda { @verification.process([]) }.should raise_error
116
+ end
117
+
118
+ describe 'when not testing' do
119
+ before do
120
+ # To be explicit
121
+ Sprinkle::OPTIONS[:testing] = false
122
+ end
123
+
124
+ it 'should call process on the delivery with the correct parameters' do
125
+ @delivery.should_receive(:process).with(@name, @verification.commands, [:app], true).once.and_return(true)
126
+ @verification.process([:app])
127
+ end
128
+
129
+ it 'should raise Sprinkle::VerificationFailed exception when commands fail' do
130
+ @delivery.should_receive(:process).once.and_return(false)
131
+ lambda { @verification.process([:app]) }.should raise_error(Sprinkle::VerificationFailed) do |error|
132
+ error.package.should eql(@package)
133
+ error.description.should eql('moo')
134
+ end
135
+ end
136
+ end
137
+
138
+ describe 'when testing' do
139
+ before do
140
+ Sprinkle::OPTIONS[:testing] = true
141
+ @logger = mock(ActiveSupport::BufferedLogger, :debug => true, :debug? => true)
142
+ end
143
+
144
+ it 'should not call process on the delivery' do
145
+ @delivery.should_not_receive(:process)
146
+ end
147
+
148
+ it 'should print the install sequence to the console' do
149
+ @verification.should_receive(:logger).twice.and_return(@logger)
150
+ end
151
+
152
+ after do
153
+ @verification.process([:app])
154
+ Sprinkle::OPTIONS[:testing] = false
155
+ end
156
+ end
157
+ end
158
+
159
+ describe 'with registering new verification modules' do
160
+ module MyModule
161
+ def rawr; end
162
+ end
163
+
164
+ it 'should not respond to rawr initially' do
165
+ @verification.should_not respond_to(:rawr)
166
+ end
167
+
168
+ it 'should respond to rawr after registering the module' do
169
+ Sprinkle::Verify.register(MyModule)
170
+ @verification.should respond_to(:rawr)
171
+ end
172
+ end
173
+ end
Binary file
@@ -0,0 +1,26 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "sprinkle/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "dhill-sprinkle"
7
+ s.version = Sprinkle::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Marcus Crafter", "Dave Hill"]
10
+ s.email = ["crafter@redartisan.com", "dhill@digitalbrook.com"]
11
+ s.homepage = "http://github.com/dhill/sprinkle"
12
+ s.summary = %q{Ruby DSL-based software provisioning tool}
13
+ s.description = %q{Ruby DSL-based software provisioning tool}
14
+
15
+ s.rubyforge_project = "dhill-sprinkle"
16
+
17
+ s.add_development_dependency "rspec", ">= 1.2.9"
18
+ s.add_dependency('activesupport', '>= 2.0.2')
19
+ s.add_dependency('highline', '>= 1.4.0')
20
+ s.add_dependency('capistrano', '>= 2.5.5')
21
+
22
+ s.files = `git ls-files`.split("\n")
23
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
24
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
25
+ s.require_paths = ["lib"]
26
+ end
metadata ADDED
@@ -0,0 +1,281 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dhill-sprinkle
3
+ version: !ruby/object:Gem::Version
4
+ hash: 89
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 3
9
+ - 3
10
+ - 1
11
+ version: 0.3.3.1
12
+ platform: ruby
13
+ authors:
14
+ - Marcus Crafter
15
+ - Dave Hill
16
+ autorequire:
17
+ bindir: bin
18
+ cert_chain: []
19
+
20
+ date: 2011-05-16 00:00:00 -04:00
21
+ default_executable:
22
+ dependencies:
23
+ - !ruby/object:Gem::Dependency
24
+ name: rspec
25
+ prerelease: false
26
+ requirement: &id001 !ruby/object:Gem::Requirement
27
+ none: false
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ hash: 13
32
+ segments:
33
+ - 1
34
+ - 2
35
+ - 9
36
+ version: 1.2.9
37
+ type: :development
38
+ version_requirements: *id001
39
+ - !ruby/object:Gem::Dependency
40
+ name: activesupport
41
+ prerelease: false
42
+ requirement: &id002 !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ hash: 11
48
+ segments:
49
+ - 2
50
+ - 0
51
+ - 2
52
+ version: 2.0.2
53
+ type: :runtime
54
+ version_requirements: *id002
55
+ - !ruby/object:Gem::Dependency
56
+ name: highline
57
+ prerelease: false
58
+ requirement: &id003 !ruby/object:Gem::Requirement
59
+ none: false
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ hash: 7
64
+ segments:
65
+ - 1
66
+ - 4
67
+ - 0
68
+ version: 1.4.0
69
+ type: :runtime
70
+ version_requirements: *id003
71
+ - !ruby/object:Gem::Dependency
72
+ name: capistrano
73
+ prerelease: false
74
+ requirement: &id004 !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ hash: 17
80
+ segments:
81
+ - 2
82
+ - 5
83
+ - 5
84
+ version: 2.5.5
85
+ type: :runtime
86
+ version_requirements: *id004
87
+ description: Ruby DSL-based software provisioning tool
88
+ email:
89
+ - crafter@redartisan.com
90
+ - dhill@digitalbrook.com
91
+ executables:
92
+ - sprinkle
93
+ extensions: []
94
+
95
+ extra_rdoc_files: []
96
+
97
+ files:
98
+ - .gitignore
99
+ - CREDITS
100
+ - Gemfile
101
+ - MIT-LICENSE
102
+ - README.markdown
103
+ - Rakefile
104
+ - VERSION
105
+ - bin/sprinkle
106
+ - examples/packages/build_essential.rb
107
+ - examples/packages/databases/mysql.rb
108
+ - examples/packages/databases/sqlite3.rb
109
+ - examples/packages/phusion.rb
110
+ - examples/packages/ruby/rails.rb
111
+ - examples/packages/ruby/ruby.rb
112
+ - examples/packages/ruby/rubygems.rb
113
+ - examples/packages/scm/git.rb
114
+ - examples/packages/scm/subversion.rb
115
+ - examples/packages/servers/apache.rb
116
+ - examples/rails/README
117
+ - examples/rails/deploy.rb
118
+ - examples/rails/packages/database.rb
119
+ - examples/rails/packages/essential.rb
120
+ - examples/rails/packages/rails.rb
121
+ - examples/rails/packages/scm.rb
122
+ - examples/rails/packages/search.rb
123
+ - examples/rails/packages/server.rb
124
+ - examples/rails/rails.rb
125
+ - examples/sprinkle/sprinkle.rb
126
+ - lib/sprinkle.rb
127
+ - lib/sprinkle/actors/actors.rb
128
+ - lib/sprinkle/actors/capistrano.rb
129
+ - lib/sprinkle/actors/local.rb
130
+ - lib/sprinkle/actors/ssh.rb
131
+ - lib/sprinkle/actors/vlad.rb
132
+ - lib/sprinkle/configurable.rb
133
+ - lib/sprinkle/deployment.rb
134
+ - lib/sprinkle/extensions/arbitrary_options.rb
135
+ - lib/sprinkle/extensions/array.rb
136
+ - lib/sprinkle/extensions/blank_slate.rb
137
+ - lib/sprinkle/extensions/dsl_accessor.rb
138
+ - lib/sprinkle/extensions/string.rb
139
+ - lib/sprinkle/extensions/symbol.rb
140
+ - lib/sprinkle/installers/apt.rb
141
+ - lib/sprinkle/installers/binary.rb
142
+ - lib/sprinkle/installers/bsd_port.rb
143
+ - lib/sprinkle/installers/deb.rb
144
+ - lib/sprinkle/installers/freebsd_pkg.rb
145
+ - lib/sprinkle/installers/freebsd_portinstall.rb
146
+ - lib/sprinkle/installers/gem.rb
147
+ - lib/sprinkle/installers/install_package.rb
148
+ - lib/sprinkle/installers/installer.rb
149
+ - lib/sprinkle/installers/mac_port.rb
150
+ - lib/sprinkle/installers/noop.rb
151
+ - lib/sprinkle/installers/openbsd_pkg.rb
152
+ - lib/sprinkle/installers/opensolaris_pkg.rb
153
+ - lib/sprinkle/installers/push_text.rb
154
+ - lib/sprinkle/installers/rake.rb
155
+ - lib/sprinkle/installers/replace_text.rb
156
+ - lib/sprinkle/installers/rpm.rb
157
+ - lib/sprinkle/installers/runner.rb
158
+ - lib/sprinkle/installers/smart.rb
159
+ - lib/sprinkle/installers/source.rb
160
+ - lib/sprinkle/installers/transfer.rb
161
+ - lib/sprinkle/installers/user.rb
162
+ - lib/sprinkle/installers/yum.rb
163
+ - lib/sprinkle/installers/zypper.rb
164
+ - lib/sprinkle/package.rb
165
+ - lib/sprinkle/policy.rb
166
+ - lib/sprinkle/script.rb
167
+ - lib/sprinkle/verifiers/apt.rb
168
+ - lib/sprinkle/verifiers/directory.rb
169
+ - lib/sprinkle/verifiers/executable.rb
170
+ - lib/sprinkle/verifiers/file.rb
171
+ - lib/sprinkle/verifiers/package.rb
172
+ - lib/sprinkle/verifiers/process.rb
173
+ - lib/sprinkle/verifiers/rpm.rb
174
+ - lib/sprinkle/verifiers/ruby.rb
175
+ - lib/sprinkle/verifiers/symlink.rb
176
+ - lib/sprinkle/verify.rb
177
+ - lib/sprinkle/version.rb
178
+ - script/console
179
+ - script/destroy
180
+ - script/generate
181
+ - spec/spec.opts
182
+ - spec/spec_helper.rb
183
+ - spec/sprinkle/actors/capistrano_spec.rb
184
+ - spec/sprinkle/actors/local_spec.rb
185
+ - spec/sprinkle/configurable_spec.rb
186
+ - spec/sprinkle/deployment_spec.rb
187
+ - spec/sprinkle/extensions/array_spec.rb
188
+ - spec/sprinkle/extensions/string_spec.rb
189
+ - spec/sprinkle/installers/apt_spec.rb
190
+ - spec/sprinkle/installers/bsd_port_spec.rb
191
+ - spec/sprinkle/installers/freebsd_pkg_spec.rb
192
+ - spec/sprinkle/installers/freebsd_portinstall_spec.rb
193
+ - spec/sprinkle/installers/gem_spec.rb
194
+ - spec/sprinkle/installers/installer_spec.rb
195
+ - spec/sprinkle/installers/mac_port_spec.rb
196
+ - spec/sprinkle/installers/noop_spec.rb
197
+ - spec/sprinkle/installers/openbsd_pkg_spec.rb
198
+ - spec/sprinkle/installers/opensolaris_pkg_spec.rb
199
+ - spec/sprinkle/installers/push_text_spec.rb
200
+ - spec/sprinkle/installers/rake_spec.rb
201
+ - spec/sprinkle/installers/replace_text_spec.rb
202
+ - spec/sprinkle/installers/rpm_spec.rb
203
+ - spec/sprinkle/installers/runner_spec.rb
204
+ - spec/sprinkle/installers/source_spec.rb
205
+ - spec/sprinkle/installers/transfer_spec.rb
206
+ - spec/sprinkle/installers/yum_spec.rb
207
+ - spec/sprinkle/installers/zypper_spec.rb
208
+ - spec/sprinkle/package_spec.rb
209
+ - spec/sprinkle/policy_spec.rb
210
+ - spec/sprinkle/script_spec.rb
211
+ - spec/sprinkle/sprinkle_spec.rb
212
+ - spec/sprinkle/verify_spec.rb
213
+ - sprinkle-0.3.3.1.gem
214
+ - sprinkle.gemspec
215
+ has_rdoc: true
216
+ homepage: http://github.com/dhill/sprinkle
217
+ licenses: []
218
+
219
+ post_install_message:
220
+ rdoc_options: []
221
+
222
+ require_paths:
223
+ - lib
224
+ required_ruby_version: !ruby/object:Gem::Requirement
225
+ none: false
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ hash: 3
230
+ segments:
231
+ - 0
232
+ version: "0"
233
+ required_rubygems_version: !ruby/object:Gem::Requirement
234
+ none: false
235
+ requirements:
236
+ - - ">="
237
+ - !ruby/object:Gem::Version
238
+ hash: 3
239
+ segments:
240
+ - 0
241
+ version: "0"
242
+ requirements: []
243
+
244
+ rubyforge_project: dhill-sprinkle
245
+ rubygems_version: 1.3.7
246
+ signing_key:
247
+ specification_version: 3
248
+ summary: Ruby DSL-based software provisioning tool
249
+ test_files:
250
+ - spec/spec.opts
251
+ - spec/spec_helper.rb
252
+ - spec/sprinkle/actors/capistrano_spec.rb
253
+ - spec/sprinkle/actors/local_spec.rb
254
+ - spec/sprinkle/configurable_spec.rb
255
+ - spec/sprinkle/deployment_spec.rb
256
+ - spec/sprinkle/extensions/array_spec.rb
257
+ - spec/sprinkle/extensions/string_spec.rb
258
+ - spec/sprinkle/installers/apt_spec.rb
259
+ - spec/sprinkle/installers/bsd_port_spec.rb
260
+ - spec/sprinkle/installers/freebsd_pkg_spec.rb
261
+ - spec/sprinkle/installers/freebsd_portinstall_spec.rb
262
+ - spec/sprinkle/installers/gem_spec.rb
263
+ - spec/sprinkle/installers/installer_spec.rb
264
+ - spec/sprinkle/installers/mac_port_spec.rb
265
+ - spec/sprinkle/installers/noop_spec.rb
266
+ - spec/sprinkle/installers/openbsd_pkg_spec.rb
267
+ - spec/sprinkle/installers/opensolaris_pkg_spec.rb
268
+ - spec/sprinkle/installers/push_text_spec.rb
269
+ - spec/sprinkle/installers/rake_spec.rb
270
+ - spec/sprinkle/installers/replace_text_spec.rb
271
+ - spec/sprinkle/installers/rpm_spec.rb
272
+ - spec/sprinkle/installers/runner_spec.rb
273
+ - spec/sprinkle/installers/source_spec.rb
274
+ - spec/sprinkle/installers/transfer_spec.rb
275
+ - spec/sprinkle/installers/yum_spec.rb
276
+ - spec/sprinkle/installers/zypper_spec.rb
277
+ - spec/sprinkle/package_spec.rb
278
+ - spec/sprinkle/policy_spec.rb
279
+ - spec/sprinkle/script_spec.rb
280
+ - spec/sprinkle/sprinkle_spec.rb
281
+ - spec/sprinkle/verify_spec.rb