Module: Dkdeploy::DSL

Defined in:
lib/dkdeploy/dsl.rb

Overview

dsl api

Instance Method Summary collapse

Instance Method Details

#invoke_for_server(server, task, *args) ⇒ Object

Execute a rake/capistrano task only for given server

Parameters:

  • server (Capistrano::Configuration::Server)

    Server to execute task

  • task (String)

    Name of rake/capistrano task

  • args (Array)

    Arguments of rake/capistrano task



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/dkdeploy/dsl.rb', line 11

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