class Hyrb::Tasks::DigitalOcean::SyncSSHKeys
Public Instance Methods
run(env)
click to toggle source
# File lib/hyrb/tasks/digital_ocean.rb, line 61 def run(env) env.digital_ocean_ssh_keys.each do |dokey| unless key = env.developers.any? { |dev| dev.keys.include? dokey.ssh_pub_key } say "Removing #{dokey.name} SSH key from Digital Ocean", :green env.digital_ocean_client.ssh_keys.destroy(dokey.id) end end env.developers.select { |d| d.keys.any? }.each do |dev| if key = env.digital_ocean_ssh_keys.any? { |k| dev.keys.include? k.ssh_pub_key } say "#{dev.name}'s keys already added to Digital Ocean", :yellow else dev.keys.each do |pubkey, i| say "Adding pubkey for #{dev.name} to Digital Ocean", :green env.digital_ocean_client.ssh_keys.create(name: dev.name, ssh_pub_key: pubkey) end end end end