def print_report
      todos = []
      finder = FileFinder.new(path, options)
      files = load_files(finder)
      files.each do |file|
        todos += Todo.within(File.open(file), :config => @options)
      end
      todos.sort.each.with_index do |todo, num|
        due_date = if todo.due_date
                     tag_context = " via #{todo.tag}" if todo.tag?
                     Rainbow(" (due #{todo.due_date.to_date}#{tag_context})")
                       .public_send(todo.due_date.overdue? ? :red : :blue)
                   else
                     Rainbow(" (no due date)").red
                   end
        puts "#{num + 1}. #{todo.task}#{due_date} " +
             Rainbow(
               "(#{todo.relative_path}:#{todo.line_number}:" \
               "#{todo.character_number})"
             ).yellow
      end

      exit 0
    end
def print_report
      todos = []
      finder = FileFinder.new(path, options)
      files = load_files(finder)
      files.each do |file|
        todos += Todo.within(File.open(file), :config => @options)
      end
      todos.sort.each.with_index do |todo, num|
        due_date = if todo.due_date
                     tag_context = " via #{todo.tag}" if todo.tag?
                     Rainbow(" (due #{todo.due_date.to_date}#{tag_context})")
                       .public_send(todo.due_date.overdue? ? :red : :blue)
                   else
                     Rainbow(" (no due date)").red
                   end
        puts "#{num + 1}. #{todo.task}#{due_date} " +
             Rainbow(
               "(#{todo.relative_path}:#{todo.line_number}:" \
               "#{todo.character_number})"
             ).yellow
      end

      exit 0
    end
Print report of todos in codebase, then exit

 @return by exiting with 0
 @api private