Class: Sprinkle::Actors::Vlad
Overview
Vlad Delivery Method
Vlad is one of the delivery method options available out of the box with Sprinkle. If you have the vlad the deployer gem install, you may use this delivery. The only configuration option available, and which is mandatory to include is script
. An example:
deployment do
delivery :vlad do
script 'deploy'
end
end
script is given a list of files which capistrano will include and load. These recipes are mainly to set variables such as :user, :password, and to set the app domain which will be sprinkled.
Instance Attribute Summary collapse
-
#loaded_recipes ⇒ Object
:nodoc:.
Instance Method Summary collapse
-
#initialize(&block) ⇒ Vlad
constructor
:nodoc:.
-
#process(name, commands, roles, suppress_and_return_failures = false) ⇒ Object
:nodoc:.
-
#script(name) ⇒ Object
Defines a script file which will be included by vlad.
-
#transfer(name, source, destination, roles, recursive = true, suppress_and_return_failures = false) ⇒ Object
Sorry, all transfers are recursive.
Constructor Details
#initialize(&block) ⇒ Vlad
:nodoc:
23 24 25 |
# File 'lib/sprinkle/actors/vlad.rb', line 23 def initialize(&block) #:nodoc: self.instance_eval &block if block end |
Instance Attribute Details
#loaded_recipes ⇒ Object
:nodoc:
21 22 23 |
# File 'lib/sprinkle/actors/vlad.rb', line 21 def loaded_recipes @loaded_recipes end |
Instance Method Details
#process(name, commands, roles, suppress_and_return_failures = false) ⇒ Object
:nodoc:
43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/sprinkle/actors/vlad.rb', line 43 def process(name, commands, roles, suppress_and_return_failures = false) #:nodoc: commands = commands.join ' && ' if commands.is_a? Array t = remote_task(task_sym(name), :roles => roles) { run commands } begin t.invoke return true rescue ::Vlad::CommandFailedError => e return false if suppress_and_return_failures # Reraise error if we're not suppressing it raise end end |
#script(name) ⇒ Object
Defines a script file which will be included by vlad. Use these script files to set vlad specific configurations. Multiple scripts may be specified through multiple script calls, an example:
deployment do
delivery :vlad do
script 'deploy'
script 'magic_beans'
end
end
37 38 39 40 41 |
# File 'lib/sprinkle/actors/vlad.rb', line 37 def script(name) @loaded_recipes ||= [] self.load name @loaded_recipes << script end |
#transfer(name, source, destination, roles, recursive = true, suppress_and_return_failures = false) ⇒ Object
Sorry, all transfers are recursive
59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/sprinkle/actors/vlad.rb', line 59 def transfer(name, source, destination, roles, recursive = true, suppress_and_return_failures = false) #:nodoc: begin rsync source, destination return true rescue ::Vlad::CommandFailedError => e return false if suppress_and_return_failures # Reraise error if we're not suppressing it raise end end |