* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*)
-(* Driver for server *)
+(* Driver for configuration requests *)
-val _ =
+fun domtoolRoot () =
+ let
+ val uid = Posix.ProcEnv.getuid ()
+ val dname = Posix.SysDB.Passwd.home (Posix.SysDB.getpwuid uid)
+ in
+ OS.Path.joinDirFile {dir = dname,
+ file = ".domtool"}
+ end
+
+val (doit, args) =
case CommandLine.arguments () of
- [fname] => Main.request fname
+ "-tc" :: args => (fn fname => (Main.setupUser (); ignore (Main.check fname)), args)
+ | args => (Main.request, args)
+
+val _ =
+ case args of
+ [fname] =>
+ if Posix.FileSys.access (fname, []) then
+ doit fname
+ else
+ doit (OS.Path.joinDirFile {dir = domtoolRoot (),
+ file = fname})
+ | [] => Main.requestDir (domtoolRoot ())
| _ => print "Invalid command-line arguments\n"