class Autotest

def run

def run
  hook :initialize
  reset
  add_sigint_handler
  self.last_mtime = Time.now if options[:no_full_after_start]
  loop do
    begin # ^c handler
      get_to_green
      if tainted? and not options[:no_full_after_failed]
        rerun_all_tests
      else
        hook :all_good
      end
      wait_for_changes
    rescue Interrupt
      break if wants_to_quit
      reset
    end
  end
  hook :quit
rescue Exception => err
  hook :died, err
end