class Pronto::CLI

def is_thor_reserved_word?(word, type)

def is_thor_reserved_word?(word, type)
  return false if word == 'run'
  super
end

def list

def list
  puts ::Pronto::GemNames.new.to_a
end

def run(path = '.')

def run(path = '.')
  path = File.expand_path(path)
  gem_names = options[:runner].any? ? options[:runner] : ::Pronto::GemNames.new.to_a
  gem_names.each do |gem_name|
    require "pronto/#{gem_name}"
  end
  formatters = ::Pronto::Formatter.get(options[:formatters])
  commit_options = %i[workdir staged unstaged index]
  commit = commit_options.find { |o| options[o] } || options[:commit]
  repo_workdir = ::Rugged::Repository.discover(path).workdir
  relative     = path.sub(repo_workdir, '')
  messages = Dir.chdir(repo_workdir) do
    file = relative.length != path.length ? relative : nil
    ::Pronto.run(commit, '.', formatters, file)
  end
  if options[:'exit-code']
    error_messages_count = messages.count { |m| m.level != :info }
    exit(error_messages_count)
  end
rescue Rugged::RepositoryError
  puts '"pronto" must be run from within a git repository or must be supplied the path to a git repository'
rescue Pronto::Error => e
  $stderr.puts "Pronto errored: #{e.message}"
end

def verbose_version

def verbose_version
  puts Version.verbose
end

def version

def version
  puts Version::STRING
end