Module: Capistrano::CLI::JsonTaskList

Included in:
Capistrano::CLI
Defined in:
lib/hell/lib/capistrano/cli.rb

Instance Method Summary collapse

Instance Method Details

#environmentsObject



45
46
47
48
49
# File 'lib/hell/lib/capistrano/cli.rb', line 45

def environments
  @available_tasks ||= task_list
  environments = @available_tasks.select {|name, task| is_environment?(task)}
  environments.keys
end

#is_environment?(task) ⇒ Boolean

Returns:

  • (Boolean)


51
52
53
54
# File 'lib/hell/lib/capistrano/cli.rb', line 51

def is_environment?(task)
  return false unless task[:options].include?(:hell_tags)
  Array(task[:options][:hell_tags]).include?(:environment)
end

#task_listObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/hell/lib/capistrano/cli.rb', line 8

def task_list
  config = instantiate_configuration(options)
  config.debug = options[:debug]
  config.dry_run = options[:dry_run]
  config.preserve_roles = options[:preserve_roles]
  config.logger.level = options[:verbose]

  set_pre_vars(config)
  load_recipes(config)

  config.trigger(:load)
  [config, options]

  tasks = config.task_list(:all)
  tasks.reject! {|t| HELL_BLACKLIST.include?(t.fully_qualified_name)}
  tasks = Hash[tasks.map {|task| [task.fully_qualified_name, task.to_hash]}]

  config.trigger(:exit)

  tasks
end

#tasks(pattern = nil, opts = {}) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/hell/lib/capistrano/cli.rb', line 30

def tasks(pattern = nil, opts = {})
  @available_tasks ||= task_list
  tasks = @available_tasks.reject {|name, task| is_environment?(task)}

  if pattern.is_a?(String)
    if opts.fetch(:exact, false)
      tasks.select! {|name| name == pattern}
    else
      tasks.select! {|name| name =~ /#{pattern}/}
    end
  end

  tasks
end