Sha256: c7269eb2f15828255ca53c7f5224fcccdffba5a63c8a4c1ee3e8960a370b0e0d

Contents?: true

Size: 1.38 KB

Versions: 1

Compression:

Stored size: 1.38 KB

Contents

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', '--debug', 'Display debug info') do
            @options.rubocop[:debug] = true
          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') do
            @options.hound = true
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rubocop-git-0.0.3 lib/rubocop/git/cli.rb