X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/2fc6b0dd10a94cf365b48df7fe6b0518e5dabdd1..06ba9276423ea7be0124c0db4c4715b384a94913:/src/main-vmail.sml diff --git a/src/main-vmail.sml b/src/main-vmail.sml index 8acb845..fccb384 100644 --- a/src/main-vmail.sml +++ b/src/main-vmail.sml @@ -35,10 +35,24 @@ val _ = | ["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] => @@ -57,4 +71,4 @@ val _ = else print "Aborted\n") - | _ => print "Invalid command-line arguments\n" + | _ => print "Invalid command-line arguments. See https://wiki.hcoop.net/MemberManual/Email/VirtualMail\n"