def sudo(str)
SUDO_MUTEX.synchronize do
prompt = "\n\n" + "Your user account isn't allowed to install to the system RubyGems.\nYou can cancel this installation and run:\n\nbundle install --path vendor/bundle\n\nto install the gems into ./vendor/bundle/, or you can enter your password\nand install the bundled gems to RubyGems using sudo.\n\nPassword:\n".gsub(/^ {6}/, "").strip + " "
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