Prior to 3.0 there was a way to do that:

# ...
set :mysql_password, proc { Capistrano::CLI.password_prompt "Gimme remote 
database server password. Don't worry, I won't tell anyone: " }# ...

namespace :db do
  desc 'Dump remote database'
  task :dump do
    run "mysqldump -u #{mysql_user} -p #{mysql_database} > 
~/#{mysql_database}.sql" do |channel, stream, data|
      if data =~ /^Enter password:/
        channel.send_data "#{mysql_password}\n"
      end
    end
  endend

It prompts for password, doesn't show it as you type and leaves no traces 
of it in the logs and the output.

Now, as of 3.0 the only way I have found:

# ...

namespace :db do
  desc 'Dump remote database'
  task :dump do
    ask :mysql_password, nil
    on roles(:db) do
      execute "mysqldump -u#{fetch :mysql_user} -p#{fetch :mysql_password} 
#{fetch :mysql_database} > ~/#{fetch :mysql_database}.sql"
    end
  endend

It does the job but reveals password everywhere.

Is there a secure way for password prompting in 3.0? Thanks!


Taken from SO — http://stackoverflow.com/q/20789912/535406

-- 
You received this message because you are subscribed to the Google Groups 
"Capistrano" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/capistrano/9394d648-e2c1-4708-99fc-aea7377543ec%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to