Sha256: 9889fbd1102384d5a71af76842b3ae9a8578c2bddddccec90ade7c785c549e0a

Contents?: true

Size: 708 Bytes

Versions: 1

Compression:

Stored size: 708 Bytes

Contents

Capistrano::Configuration.instance.load do
  namespace :multiproject do
    desc "[internal] Filter roles to only those that are used by the current project"
    task :filter_roles do
      project_roles_sym = project_roles.map(&:to_sym)
      roles.select! { |k,v| project_roles_sym.include?(k) }
      logger.info "Filtered roles down to '#{roles.keys.sort.join(', ')}'"
      if roles.empty? && project_roles == [project]
        abort "Define servers of role '#{project}' in stage '#{stage}' configuration, or specify project roles in project recipe (e.g. 'set :project_roles, [:foo, :bar]')"
      end
    end
  end

  on :start, 'multiproject:filter_roles', :except => (projects + stages + %w(?))
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
capistrano-multiproject-0.0.2 lib/capistrano/multiproject/filter_roles.rb