Browse Source

Created service formatting library function

Xabier de Zuazo 11 years ago
parent
commit
c7694c5655
1 changed files with 36 additions and 0 deletions
  1. 36 0
      libraries/conf.rb

+ 36 - 0
libraries/conf.rb

@@ -1,4 +1,6 @@
 
+require 'erubis'
+
 module Dovecot
   module Conf
 
@@ -14,6 +16,40 @@ module Dovecot
       end
     end
 
+    def self.service(name, conf)
+
+      template =
+'service <%= @name %> {
+  <% if @conf["listeners"].kind_of?(Array)
+      @conf["listeners"].each do |listener|
+        listener.each do |service, values|
+          service_proto = service.split(":")[0]
+          service_name = service.split(":")[1]
+  -%>
+  <%= service_proto %>_listener <%= service_name %> {
+  <%     values.each do |key, value|-%>
+    <%= key %> = <%= @Dovecot_Conf.value(value) %>
+  <%     end -%>
+  }
+  <%     end -%>
+  <%   end -%>
+  <% end -%>
+  <% @conf.each do |key, value|
+      if key != "listeners"
+  -%>
+  <%= key %> = <%= @Dovecot_Conf.value(value) %>
+  <%   end -%>
+  <% end -%>
+}'
+
+      eruby = Erubis::Eruby.new(template)
+      eruby.evaluate(
+        :name => name,
+        :conf => conf,
+        :Dovecot_Conf => Dovecot::Conf
+      )
+    end
+
   end
 end