Fix regeneration of multi-file dependencies
[hcoop/domtool2.git] / src / main-vmail.sml
index 05cb86f..2490d02 100644 (file)
@@ -27,16 +27,32 @@ val _ =
            (case Main.requestListMailboxes domain of
                 Vmail.Error msg => (print msg;
                                     print "\n")
-              | Vmail.Listing users => app (fn user => (print user;
-                                                        print "\n")) users)
+              | Vmail.Listing users => app (fn {user, mailbox} => (print user;
+                                                                   print "\t";
+                                                                   print mailbox;
+                                                                   print "\n")) users)
 
          | ["add", user, mailbox] =>
            (case Client.getpass () of
                 Client.Passwd passwd =>
-                Main.requestNewMailbox {domain = domain,
-                                        user = user,
-                                        passwd = passwd,
-                                        mailbox = mailbox}
+                let
+                    val mailbox = if size mailbox > 0
+                                     andalso String.sub (mailbox, 0) <> #"/" then
+                                      let
+                                          val uid = Posix.ProcEnv.getuid ()
+                                          val user = Posix.SysDB.getpwuid uid
+                                          val home = Posix.SysDB.Passwd.home user
+                                      in
+                                          home ^ "/" ^ mailbox
+                                      end
+                                  else
+                                      mailbox
+                in
+                    Main.requestNewMailbox {domain = domain,
+                                            user = user,
+                                            passwd = passwd,
+                                            mailbox = mailbox}
+                end
               | _ => ())
 
          | ["passwd", user] =>