module Bundler
def sudo(str)
def sudo(str) SUDO_MUTEX.synchronize do prompt = "\n\n" + <<-PROMPT.gsub(/^ {6}/, "").strip + " " Your user account isn't allowed to install to the system RubyGems. You can cancel this installation and run: bundle install --path vendor/bundle to install the gems into ./vendor/bundle/, or you can enter your password and install the bundled gems to RubyGems using sudo. Password: PROMPT unless @prompted_for_sudo ||= system(%(sudo -k -p "#{prompt}" true)) raise SudoNotPermittedError, "Bundler requires sudo access to install at the moment. " \ "Try installing again, granting Bundler sudo access when prompted, or installing into a different path." end `sudo -p "#{prompt}" #{str}` end end