52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
# File 'lib/pronto/cli.rb', line 52
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
|