Add report on who hasn't migrated yet
[hcoop/zz_old/portal.git] / apt.sml
diff --git a/apt.sml b/apt.sml
dissimilarity index 99%
index fcea967..7aef214 100644 (file)
--- 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)