+fun uid () =
+ case Posix.ProcEnv.getenv "DOMTOOL_USER" of
+ NONE => Posix.ProcEnv.getuid ()
+ | SOME user => Posix.SysDB.Passwd.uid (Posix.SysDB.getpwnam user)
+
+fun domtoolRoot () =
+ let
+ val dname = Posix.SysDB.Passwd.home (Posix.SysDB.getpwuid (uid ()))
+ in
+ OS.Path.joinDirFile {dir = dname,
+ file = ".domtool"}
+ end
+
+val (doit, doitDir, args) =