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.