class Anvil::Cli

Anvil command line interface

Constants

HELP_HEADER

Public Instance Methods

bad_arguments(task_name) click to toggle source
# File lib/anvil/cli.rb, line 56
def bad_arguments(task_name)
  Anvil.logger.info("Wrong number of arguments.\n")
  HelpTask.run(task_name)
end
build_task(argv) click to toggle source

Builds a task and prepares it to run

@param argv [Array] Command line arguments @return [Anvil::Task] A task ready to run

# File lib/anvil/cli.rb, line 36
def build_task(argv)
  arguments = argv.dup
  task_name = arguments.shift
  klazz     = Task.from_name(task_name)
  klazz.new(*klazz.parse_options!(arguments))
rescue NameError
  task_not_found(task_name)
  exit false
rescue ArgumentError
  bad_arguments(task_name)
  exit false
end
load_tasks() click to toggle source
# File lib/anvil/cli.rb, line 28
def load_tasks
  Anvil::ExtensionsManager.load_tasks
end
print_help_body(task_name = nil) click to toggle source
print_help_header() click to toggle source
print_task_line(task) click to toggle source
run(argv) click to toggle source

Runs a task or prints its help if it needs arguments

@param argv [Array] Command line arguments @return [Object, nil] Anything the task returns

# File lib/anvil/cli.rb, line 19
def run(argv)
  load_tasks

  return build_task(argv).run unless argv.empty?

  print_help_header
  print_help_body
end
task_list(task_name) click to toggle source
# File lib/anvil/cli.rb, line 65
def task_list(task_name)
  tasks = Anvil::ExtensionsManager.tasks_by_name

  return tasks unless task_name
  tasks.select { |task| task.to_s.underscore =~ /#{task_name}/ }
end
task_not_found(task_name = nil) click to toggle source
# File lib/anvil/cli.rb, line 49
def task_not_found(task_name = nil)
  Anvil.logger.info "Task '#{task_name}' not found"
  Anvil.logger.info('Maybe you mean one of the following') if task_name
  Anvil.logger.info("\n")
  print_help_body task_name
end