1 structure MailingList
=
4 structure R
= Request(struct
5 val table
= "MailingList"
6 val adminGroup
= "lists"
7 fun subject list
= "Mailman list request: " ^ list
9 val descr
= "mailing list"
11 fun body (mail
, lst
) =
12 (Mail
.mwrite (mail
, "List name: ");
13 Mail
.mwrite (mail
, lst
);
14 Mail
.mwrite (mail
, "\n"))
18 fun listWebHost name
=
19 case String.tokens (fn ch
=> ch
= #
"@") name
of
22 val mmf
= Util
.domainDir dom ^
"/mailman"
24 if Posix
.FileSys
.access (mmf
, []) then
26 val inf
= TextIO.openIn mmf
28 (case TextIO.inputLine inf
of
29 NONE
=> {user
= user
, dom
= dom
, vhost
= "<<<No darned data in " ^ mmf ^
">>>"}
31 case String.tokens (fn ch
=> Char.isSpace ch
orelse ch
= #
":" orelse ch
= #
"'" orelse ch
= #
",") line
of
32 [vhost
, _
] => {user
= user
, dom
= dom
, vhost
= "http://" ^ vhost
}
33 | _
=> {user
= user
, dom
= dom
, vhost
= "<<<Parse failure in " ^ mmf ^
">>>"})
34 before TextIO.closeIn inf
35 end handle _
=> {user
= user
, dom
= dom
, vhost
= "<<<A darn old exception reading " ^ mmf ^
">>>"}
37 {user
= user
, dom
= dom
, vhost
= "https://lists.hcoop.net"}
39 | _
=> raise (Fail
"Bad mailing list name")