def lint_codebase
      finder = FileFinder.new(path, options)
      files = load_files(finder)
      files_count = files.count
      reports = files.map do |file|
        Todo.within(File.open(file), :config => @options).map do |todo|
          reporter = Reporter.new(todo,
                                  :judge => Judge.new(todo))
          reporter.report.tap do |report|
            print Rainbow(".").public_send(report.nil? ? :green : :red)
          end
        end
      end.flatten.compact
      if reports.any?
        puts
        reports.each do |report|
          puts report
        end
        puts "\nFound #{pluralize('problematic todo', reports.count)} in " \
          "#{pluralize('file', files_count)}"
        exit 1
      else
        puts "\nGreat job! No overdue todos in " \
             "#{pluralize('file', files_count)}"
        exit 0
      end
    end
def lint_codebase
      finder = FileFinder.new(path, options)
      files = load_files(finder)
      files_count = files.count
      reports = files.map do |file|
        Todo.within(File.open(file), :config => @options).map do |todo|
          reporter = Reporter.new(todo,
                                  :judge => Judge.new(todo))
          reporter.report.tap do |report|
            print Rainbow(".").public_send(report.nil? ? :green : :red)
          end
        end
      end.flatten.compact
      if reports.any?
        puts
        reports.each do |report|
          puts report
        end
        puts "\nFound #{pluralize('problematic todo', reports.count)} in " \
          "#{pluralize('file', files_count)}"
        exit 1
      else
        puts "\nGreat job! No overdue todos in " \
             "#{pluralize('file', files_count)}"
        exit 0
      end
    end
Check requested files for problematic TODO comments
 @return exit code 0 for success, 1 for failure
 @api private