I have a strange security requirement from a client where I can't
store several passwords on our shared SCM server.   As such, I tried
asking for multiple passwords (two or more) in a deploy.rb using the
following task.

namespace :pre_setup do
    task :generate_database_configuration, :roles => :app do
      set :password, proc { Capistrano::CLI.password_prompt("MySQL
Password (#{application}): ")}
      set :intranet_login, proc
{ Capistrano::CLI.password_prompt("Intranet Login (#{application}):
")}
      set :intranet_password, proc
{ Capistrano::CLI.password_prompt("Intranet Password (#{application}):
")}
      # ...
   end
end

The problem is, Capistrano only asks for the first password.  I've
already tried every variant on the set command that I could find after
Googling around for about an hour.

This doesn't work either:

      set(:password) { Capistrano::CLI.password_prompt("MySQL Password
(#{application}): ")}
      set(:intranet_login) { Capistrano::CLI.password_prompt("Intranet
Login (#{application}): ")}
      set(:intranet_password)
{ Capistrano::CLI.password_prompt("Intranet Password (#{application}):
")}

Neither does this:

      set :password, Proc.new { Capistrano::CLI.password_prompt("MySQL
Password (#{application}): ")}
      set :intranet_login, Proc.new
{ Capistrano::CLI.password_prompt("Intranet Login (#{application}):
")}
      set :intranet_password, Proc.new
{ Capistrano::CLI.password_prompt("Intranet Password (#{application}):
")}

The only way I was able to get Capistrano to ask for multiple
passwords was doing the following:

      set :password, proc { Capistrano::CLI.password_prompt("MySQL
Password (#{application}): ")}
      sleep 1 unless password.length > 0
      set :intranet_login, proc
{ Capistrano::CLI.password_prompt("Intranet Login (#{application}):
")}
      sleep 1 unless intranet_login.length > 0
      set :intranet_password, proc
{ Capistrano::CLI.password_prompt("Intranet Password (#{application}):
")}
      sleep 1 unless intranet_password.length > 0

I have to believe this is either a bug with Capistrano, Highline or
Termios.

Any suggestions?

Tony
--~--~---------~--~----~------------~-------~--~----~
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/capistrano
-~----------~----~----~----~------~----~------~--~---

Reply via email to