(print "Couldn't find your certificate.\nYou probably haven't been given any Domtool privileges.\n";
raise e)
-fun requestContext f =
+fun setupUser () =
let
val user =
case Posix.ProcEnv.getenv "DOMTOOL_USER" of
Posix.SysDB.Passwd.name (Posix.SysDB.getpwuid uid)
end
| SOME user => user
-
- val () = Acl.read Config.aclFile
- val () = Domain.setUser user
+ in
+ Acl.read Config.aclFile;
+ Domain.setUser user;
+ user
+ end
+
+fun requestContext f =
+ let
+ val user = setupUser ()
val () = f ()
fun requestDir dname =
let
+ val _ = if Posix.FileSys.access (dname, []) then
+ ()
+ else
+ (print ("Can't access " ^ dname ^ ".\n");
+ print "Did you mean to run domtool on a specific file, instead of asking for all\n";
+ print "files in your ~/domtool directory?\n";
+ OS.Process.exit OS.Process.failure)
+
val _ = ErrorMsg.reset ()
val (user, bio) = requestBio (fn () => checkDir dname)