Fix scoping
[mirror/dsa-puppet.git] / modules / puppetmaster / lib / puppet / parser / functions / gen_tlsa_entry.rb
index 7c07b7c..310a77e 100644 (file)
@@ -4,13 +4,24 @@ module Puppet::Parser::Functions
     hostname = args.shift()
     port = args.shift()
 
+    res = []
     if File.exist?(certfile)
       cmd = ['swede', 'create', '--usage=3', '--selector=1', '--mtype=1', '--certificate', certfile, '--port', port.to_s, hostname]
-      IO.popen(cmd, "r") {|i|
-        return i.read
-      }
+      IO.popen(cmd, "r") {|i| res << i.read }
     else
-      return "; certfile #{certfile} did not exist to create TLSA record for #{hostname}:#{port}."
+      res << "; certfile #{certfile} did not exist to create TLSA record for #{hostname}:#{port}."
     end
+
+    certfile += ".new"
+    if File.exist?(certfile)
+      cmd = ['swede', 'create', '--usage=3', '--selector=1', '--mtype=1', '--certificate', certfile, '--port', port.to_s, hostname]
+      new_entry = ''
+      IO.popen(cmd, "r") {|i| new_entry = i.read }
+      if not res.include?(new_entry)
+        res << new_entry
+      end
+    end
+
+    return res.join("\n")
   end
 end