(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] =>