Sha256: 2cd768b20cedd6da62dfa17d749c3132abdb5fe635202bd0e9ee812032d83e1b

Contents?: true

Size: 785 Bytes

Versions: 3

Compression:

Stored size: 785 Bytes

Contents

module Dkdeploy
  # dsl api
  module DSL
    # Execute a rake/capistrano task only for given server
    #
    # @param server [Capistrano::Configuration::Server] Server to execute task
    # @param task [String] Name of rake/capistrano task
    # @param args [Array] Arguments of rake/capistrano task
    def invoke_for_server(server, task, *args)
      backup_filter = fetch :filter, {}
      new_server_filter = Marshal.load(Marshal.dump(backup_filter))
      new_server_filter[:host] = server.hostname
      set :filter, new_server_filter
      env.setup_filters
      info I18n.t('dsl.invoke_for_server.set_filter', task: task, host: server.hostname, scope: :dkdeploy)
      invoke! task, *args
    ensure
      set :filter, backup_filter
      env.setup_filters
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dkdeploy-core-9.1.1 lib/dkdeploy/dsl.rb
dkdeploy-core-9.2.1 lib/dkdeploy/dsl.rb
dkdeploy-core-9.1.0 lib/dkdeploy/dsl.rb