hcoop: move dispatcher to gibran
[hcoop/domtool2.git] / lib / mailman.dtl
index 21e3b49..f2158b7 100644 (file)
@@ -4,31 +4,43 @@ extern val mailmanWebHost : domain -> [Domain];
 {{Set the hostname of the web site for administration of mailing lists for this
   domain.}}
 
-extern type mailman_web_node;
+extern type mailman_node;
 {{Like <tt>web_node</tt>, but with the possibility of using some additional
   nodes set by the admins.}}
 
-extern val mailman_web_node : mailman_web_node;
+extern val mailman_node : mailman_node;
 {{The default location for Mailman web interfaces}}
 
-extern val mailman_web_node_to_node : mailman_web_node -> node;
+extern val mailman_node_to_node : mailman_node -> node;
+
+extern type mailman_place;
+extern val mailman_place_default : mailman_node -> mailman_place;
+extern val mailman_place : mailman_node -> your_ip -> mailman_place;
+extern val mailman_place_to_web_node : mailman_place -> web_node;
+extern val mailman_place_to_node : mailman_place -> node;
+extern val mailman_place_to_ip : mailman_place -> ip;
+{{Analogous to <tt>web_place</tt>, but based on <tt>mailman_node</tt>s}}
 
 extern val mailmanVhost : host -> [Domain]
-       {MailmanWebNodes : [mailman_web_node],
-        SSL : ssl,
-        User : your_user};
+  {MailmanPlaces : [mailman_place],
+  SSL : ssl,
+  User : your_user,
+  ServerAdmin : email};
 {{Create an Apache virtual host to serve as the web interface for some Mailman
   lists.}}
 
 val mailman = \ host : (host) -> begin
-  dnsIP host (ip_of_node (mailman_web_node_to_node mailman_web_node));
-  domainHost host;
-  mwh <- Hostname;
-  mailmanWebHost mwh;
-  mailmanVhost host where
-    MailmanWebNodes = [mailman_web_node];
-    SSL = no_ssl
-  end;
+  let
+    domainHost host;
+  in
+    dnsIP host (ip_of_node (mailman_node_to_node mailman_node));
+    mwh <- Hostname;
+    mailmanWebHost mwh;
+    mailmanVhost host where
+      MailmanPlaces = [mailman_place_default mailman_node];
+      SSL = no_ssl
+    end
+  end
 end;
 {{The most common Mailman config, for when you want to have a virtual host of your
   domain dedicated to a Mailman interface.  Provide the name of that host (e.g.,