class JRuby::Lint::CLI
Attributes
options[R]
Public Class Methods
new(args)
click to toggle source
# File lib/jruby/lint/cli.rb, line 6 def initialize(args) process_options(args) end
Public Instance Methods
process_options(args)
click to toggle source
# File lib/jruby/lint/cli.rb, line 10 def process_options(args) require 'optparse' require 'ostruct' @options = OpenStruct.new OptionParser.new do |opts| opts.banner = "Usage: jrlint [options] [files]" opts.separator "" opts.separator "Options:" opts.on('-C', '--chdir DIRECTORY', "Change working directory") do |v| Dir.chdir(v) end opts.on("-e", '--eval SCRIPT', "Lint an inline script") do |v| @options.eval ||= [] @options.eval << v end opts.on("-t", "--tag TAG", "Report findings tagged with TAG") do |v| @options.tags ||= [] @options.tags << v end opts.on('--text', 'print report as text') do @options.text = true end opts.on('--ansi', 'print report as ansi text') do @options.ansi = true end opts.on('--no-source-line', 'do not print out line of source') do @options.no_src_line = true end opts.on('--html [REPORT_FILE]', 'print report as html file') do |file| @options.html = file || 'jruby-lint.html' end opts.on_tail("-v", "--version", "Print version and exit") do require 'jruby/lint/version' puts "JRuby-Lint version #{VERSION}" exit end opts.on_tail("-h", "--help", "This message") do puts opts exit end end.parse!(args) @options.files = args.empty? ? nil : args rescue OptionParser::InvalidOption puts $!.message exit -1 end
run()
click to toggle source
# File lib/jruby/lint/cli.rb, line 67 def run require 'jruby/lint' require 'benchmark' project = JRuby::Lint::Project.new(@options) puts "JRuby-Lint version #{JRuby::Lint::VERSION}" time = Benchmark.realtime { project.run } term = @options.eval ? 'expression' : 'file' puts "Processed #{project.files.size} #{term}#{project.files.size == 1 ? '' : 's'} in #{'%0.02f' % time} seconds" if project.findings.empty? puts "OK" exit else puts "Found #{project.findings.count { |e| !e.tags.include? "internal" } } items" exit 1 end end