Factor error message generation into a separate file; add '-tc' flag to domtool-client
[hcoop/domtool2.git] / src / main-client.sml
index c70dfb8..f0a6f69 100644 (file)
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  *)
 
-(* Driver for server *)
+(* Driver for configuration requests *)
 
 fun domtoolRoot () =
     let
        val uid = Posix.ProcEnv.getuid ()
-       val home = Posix.SysDB.Passwd.home (Posix.SysDB.getpwuid uid)
+       val dname = Posix.SysDB.Passwd.home (Posix.SysDB.getpwuid uid)
     in
-       OS.Path.joinDirFile {dir = home,
+       OS.Path.joinDirFile {dir = dname,
                             file = "domtool"}
     end
 
-val _ =
+val (doit, args) =
     case CommandLine.arguments () of
+       "-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
-           Main.request fname
+           doit fname
        else
-           Main.request (OS.Path.joinDirFile {dir = domtoolRoot (),
-                                              file = fname})
+           doit (OS.Path.joinDirFile {dir = domtoolRoot (),
+                                      file = fname})
       | [] => Main.requestDir (domtoolRoot ())
       | _ => print "Invalid command-line arguments\n"