Adicione uma etapa de confirmação às suas tarefas de rake

Você já quis se proteger contra a execução acidental de uma tarefa crítica de rake? Em caso afirmativo, comece criando uma tarefa de confirmação:

task :confirm do
confirm_token
= rand(36**6).to_s(36)
STDOUT
.puts "Confirm [ACTION]? Enter '#{confirm_token}' to confirm:"
input
= STDIN.gets.chomp
raise "Aborting [ACTION]. You entered #{input}" unless input == confirm_token
end

Claro, substitua [ACTION]por algo relevante (ou genérico). Essa implementação gera uma string aleatória de 6 caracteres que você precisará inserir antes de continuar.

Você pode usá-lo chamando-o antes de suas próprias tarefas:

task :deploy_to_production => :confirm do
...
end

Suas tarefas críticas de rake agora estão protegidas de você!