Module: Dkdeploy::Typo3::DSL

Defined in:
lib/dkdeploy/typo3/cms/dsl.rb

Overview

TYPO3 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



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

def invoke_for_server(server, task, *args)
  backup_filter = fetch :filter, {}
  begin
    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
    Rake::Task[task].reenable
  ensure
    set :filter, backup_filter
    env.setup_filters
  end
end