class Kitsune::Kit::Commands::Ssh

def connect

def connect
  Kitsune::Kit::EnvLoader.load!
  ip = options[:ip] || fetch_server_ip
  user = options[:user]
  key_path = Kitsune::Kit::Defaults.ssh[:ssh_key_path]
  say "🔗 Connecting to #{user}@#{ip}...", :green
  exec "ssh -i #{key_path} -o StrictHostKeyChecking=no #{user}@#{ip}"
end

def fetch_server_ip

def fetch_server_ip
  token = ENV.fetch("DO_API_TOKEN") { abort "❌ DO_API_TOKEN is missing" }
  client = DropletKit::Client.new(access_token: token)
  name = Kitsune::Kit::Defaults.infra[:droplet_name]
  droplet = client.droplets.all.find { |d| d.name == name }
  abort "❌ Droplet '#{name}' not found on DigitalOcean" unless droplet
  ip = droplet.networks.v4.find { |n| n.type == "public" }&.ip_address
  abort "❌ No public IP found for droplet '#{name}'" unless ip
  ip
end