From 7ba1a7ec2bd76ac1c66f1a71c5a45ffa89f37462 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 19 Apr 2025 00:27:25 +0300 Subject: better --- wireguardmeshgenerator.rb | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/wireguardmeshgenerator.rb b/wireguardmeshgenerator.rb index a83370e..d1283f3 100644 --- a/wireguardmeshgenerator.rb +++ b/wireguardmeshgenerator.rb @@ -43,6 +43,7 @@ end PeerSnippet = Struct.new(:myself, :domain, :allowed_ips, :endpoint) do def to_s keys = KeyTool.new(myself) + <<~PEER_CONFIG [Peer] # #{myself}.#{domain} @@ -56,11 +57,8 @@ end WireguardConfig = Struct.new(:myself, :hosts) do def to_s - peers = hosts.reject { _1 == myself }.map do |hostname, data| - PeerSnippet.new(hostname, data['wg0']['domain'], data['wg0']['ip'], data['lan']['ip']) - end - keys = KeyTool.new(myself) + <<~CONFIG [Interface] # #{myself}.#{hosts[myself]['wg0']['domain']} @@ -69,7 +67,7 @@ WireguardConfig = Struct.new(:myself, :hosts) do PresharedKey = #{keys.preshared} ListenPort = 56709 - #{peers.map(&:to_s).join("\n")} + #{peer_snippets} CONFIG end @@ -78,6 +76,15 @@ WireguardConfig = Struct.new(:myself, :hosts) do FileUtils.mkdir_p(dist_dir) unless Dir.exist?(dist_dir) File.write("#{dist_dir}/wg0.conf", to_s) end + + private + + def peer_snippets + hosts.reject { _1 == myself }.map do |hostname, data| + PeerSnippet.new(hostname, data['wg0']['domain'], + data['wg0']['ip'], data['lan']['ip']) + end.map(&:to_s).join("\n") + end end CONFIG = YAML.load_file('wireguardmeshgenerator.yaml').freeze -- cgit v1.2.3