X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/1d3ef80ec822ea0fa241eb5485549ca7417e787f..cd04086681583dd3fcc95b6e12ba312054dc590e:/src/main-vmail.sml diff --git a/src/main-vmail.sml b/src/main-vmail.sml index 05cb86f..2490d02 100644 --- a/src/main-vmail.sml +++ b/src/main-vmail.sml @@ -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] =>