|
@@ -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
|
|
|
|