require 'rubocop/git' require 'optparse' module RuboCop module Git class CLI def run(args = ARGV) @options = Options.new parse_arguments(args) Runner.new.run(@options) end private def parse_arguments(args) @options.commits = option_parser.parse(args) rescue OptionParser::InvalidOption, Options::Invalid => ex warn "ERROR: #{ex.message}" $stderr.puts warn option_parser exit 1 end def option_parser @option_parser ||= OptionParser.new do |opt| opt.banner << ' [[commit] commit]' opt.on('-c', '--config FILE', 'Specify configuration file') do |config| @options.config = config end opt.on('-D', '--display-cop-names', 'Display cop names in offense messages') do @options.rubocop[:display_cop_names] = true end opt.on('--cached', 'git diff --cached') do @options.cached = true end opt.on('--staged', 'synonym of --cached') do @options.cached = true end opt.on('--hound', 'Hound compatibility mode (require rubocop 0.22.0)') do @options.hound = true end end end end end end