mirror of
				https://github.com/capistrano/capistrano
				synced 2023-03-27 23:21:18 -04:00 
			
		
		
		
	
		
			
				
	
	
	
	
		
			1.2 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			1.2 KiB
		
	
	
	
	
	
	
	
| title | layout | 
|---|---|
| User Input | default | 
User input can be required in a task or during configuration:
# used in a configuration
set :database_name, ask('Enter the database name:')
# used in a task
desc "Ask about breakfast"
task :breakfast do
  ask(:breakfast, "pancakes")
  on roles(:all) do |h|
    execute "echo \"$(whoami) wants #{fetch(:breakfast)} for breakfast!\""
  end
end
When using ask to get user input, you can pass echo: false to prevent the
input from being displayed. This option should be used to ask the user for
passwords and other sensitive data during a deploy run.
set :database_password, ask('Enter the database password:', 'default', echo: false)
If you only pass in a symbol this will be printed as text for the user and the input will be saved to this variable:
ask(:database_encoding, 'UTF-8')
fetch(:database_encoding)
# => contains the user input (or the default)
#    once the above line got executed
You can use ask to set a server- or role-specific configuration variable.
set :password, ask('Server password', nil)
server 'example.com', user: 'ssh_user_name', port: 22, password: fetch(:password), roles: %w{web app db}