require 'securerandom' require 'stringio'
def generate_token(n)
SecureRandom.hex(n)
end
namespace :token do
desc 'Generate random token' task :generate do on fetch(:token_servers) do info generate_token(fetch(:token_length)) end end desc 'Upload random token as a file on remote server' task :upload do on fetch(:token_servers) do token = generate_token(fetch(:token_length)) io = StringIO.new(token) upload! io, fetch(:token_target) end end
end
namespace :load do
task :defaults do set :token_length, 64 set :token_target, -> { shared_path.join('.token') } set :token_roles, :app set :token_servers, -> { release_roles(fetch(:token_roles)) } end
end