ff2b7604 |
1 | structure Apt = Request(struct |
2 | val table = "Apt" |
3 | val adminGroup = "server" |
4 | fun subject _ = "Apt package installation request" |
5 | val template = "apt" |
6 | val descr = "packages" |
7 | |
8 | fun body (mail, pkgs) = |
9 | let |
10 | val pkgs = String.tokens Char.isSpace pkgs |
11 | val infos = map (valOf o AptQuery.query) pkgs |
12 | |
13 | fun rightJustify (n, s) = |
14 | let |
15 | fun pad n = |
16 | if n <= 0 then |
17 | () |
18 | else |
19 | (Mail.mwrite (mail, " "); |
20 | pad (n-1)) |
21 | in |
22 | pad (n - size s); |
23 | Mail.mwrite (mail, s) |
24 | end |
25 | in |
26 | app (fn info => |
27 | (rightJustify (10, #name info); |
28 | Mail.mwrite (mail, " "); |
29 | Mail.mwrite (mail, #descr info); |
30 | Mail.mwrite (mail, "\n"))) infos |
31 | end |
32 | end) |