# File lib/phusion_passenger/abstract_installer.rb, line 204
        def prompt(message, default_value = nil)
                done = false
                while !done
                        print "#{message}: "
                        
                        if non_interactive? && default_value
                                puts default_value
                                return default_value
                        end
                        
                        begin
                                result = STDIN.readline
                        rescue EOFError
                                exit 2
                        end
                        result.strip!
                        if result.empty?
                                if default_value
                                        result = default_value
                                        done = true
                                else
                                        done = !block_given? || yield(result)
                                end
                        else
                                done = !block_given? || yield(result)
                        end
                end
                return result
        end