code: def run (task, optional: false, quiet: false, once: nil)
        once once, quiet: quiet do
          log.info "run #{task}", quiet: quiet do
            file = find_task(task)
            code = File.read(file)
            let :@file => file do
              instance_eval(code, file)
            end
          end
        end
      rescue TaskNotFound => e
        return if optional
        raise e
      end
docs: Find and execute a task. For each entry in the search path, it checks for +path/task.rb+, +path/task/blow.rb+,
   and finally for bare +path/task+. The search stops at the first match.
   If found, the task is executed within the context, with +@file+ bound to the task's file name.
   @param [String] task The name of the task.
   @macro quietable
   @macro onceable
   @raise [TaskNotFound] If no task is found.
   @raise Whatever the task itself raises.
   @return The result of evaluating the task file.