Module: Capistrano::Baptize
- Defined in:
- lib/baptize/dsl.rb,
lib/baptize/helpers.rb,
lib/baptize/install.rb,
lib/baptize/plugins/apt.rb,
lib/baptize/plugins/gem.rb,
lib/baptize/plugins/base.rb,
lib/baptize/plugins/pecl.rb,
lib/baptize/plugins/transfer.rb
Defined Under Namespace
Modules: DSL, Helpers, Plugins Classes: PackageDefinition, PolicyDefinition, VerificationFailure
Class Method Summary collapse
-
.install(scope) ⇒ Object
Defines all baptize top-level tasks.
Class Method Details
.install(scope) ⇒ Object
Defines all baptize top-level tasks
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/baptize/install.rb', line 5 def self.install(scope) scope.instance_eval do set(:root_path) { File.(Dir.pwd) } set(:capistrano_path) { "#{root_path}/capistrano" } # Can't run this here, since Capfile might want to redefine # load_configuration :roles namespace :baptize do desc "Loads baptize configuration files" task :load_configuration do top.load_configuration :baptize end task :default do install end desc "Configures all available policies" task :install do load_configuration end namespace :policies do desc "List available policies" task :default do load_configuration logger.info "Available policies:" tasks.flatten.each do |x| if x.kind_of?(Capistrano::TaskDefinition) && x.fully_qualified_name != "baptize:policies" name = x.fully_qualified_name.gsub(/^baptize:policies:/, "") policy = Capistrano::Baptize::DSL.policies[name.to_sym] logger.info "#{name}:" logger.info "-> servers:" top.roles[name.to_sym].servers.each do |s| logger.info "-> #{s}" end logger.info "-> dependencies:" policy.dependencies.each do |d| logger.info "-> #{d}" end end end end end # end namespace policies end # end namespace baptize namespace :ssh do desc "Describe available ssh connections" task :default do count = 1 roles.each do |name,servers| servers.each do |host| puts "cap ssh:#{count} (#{name}) #{host}" count = count + 1 end end end 1.upto(10).each do |num| task num.to_s.to_sym do count = 1 roles.each do |name,servers| servers.each do |host| if count == num change_dir = exists?(:deploy_to) ? ("cd " + fetch(:deploy_to) + "/current ; ") : "" command = "ssh -i #{[:keys]} #{user}@#{host} -t '#{change_dir}sudo su'" puts command exec command end count = count + 1 end end end end end # end namespace ssh end end |