X-Git-Url: https://git.hcoop.net/hcoop/zz_old/portal.git/blobdiff_plain/ff2b7604ffdbdae8ddd86c2a4366830ae9d32084..da3f3cbcf301e74d490e9ced63f09d45fedb84c1:/apt.sml diff --git a/apt.sml b/apt.sml dissimilarity index 99% index fcea967..7aef214 100644 --- a/apt.sml +++ b/apt.sml @@ -1,32 +1,32 @@ -structure Apt = Request(struct - val table = "Apt" - val adminGroup = "server" - fun subject _ = "Apt package installation request" - val template = "apt" - val descr = "packages" - - fun body (mail, pkgs) = - let - val pkgs = String.tokens Char.isSpace pkgs - val infos = map (valOf o AptQuery.query) pkgs - - fun rightJustify (n, s) = - let - fun pad n = - if n <= 0 then - () - else - (Mail.mwrite (mail, " "); - pad (n-1)) - in - pad (n - size s); - Mail.mwrite (mail, s) - end - in - app (fn info => - (rightJustify (10, #name info); - Mail.mwrite (mail, " "); - Mail.mwrite (mail, #descr info); - Mail.mwrite (mail, "\n"))) infos - end - end) +structure Apt = RequestH(struct + val table = "Apt" + val adminGroup = "server" + fun subject _ = "Apt package installation request" + val template = "apt" + val descr = "packages" + + fun body {node, mail, data = pkgs} = + let + val pkgs = String.tokens Char.isSpace pkgs + val infos = map (valOf o (fn x => AptQuery.query {node = node, pkg = x})) pkgs + + fun rightJustify (n, s) = + let + fun pad n = + if n <= 0 then + () + else + (Mail.mwrite (mail, " "); + pad (n-1)) + in + pad (n - size s); + Mail.mwrite (mail, s) + end + in + app (fn info => + (rightJustify (10, #name info); + Mail.mwrite (mail, " "); + Mail.mwrite (mail, #descr info); + Mail.mwrite (mail, "\n"))) infos + end + end)