X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/c53e82e40cef407de986aa329d31457915ad0dbe..e1b99e23f8d30efc7842ee006e0ff3ef0347b7df:/src/main-client.sml diff --git a/src/main-client.sml b/src/main-client.sml index c70dfb8..f0a6f69 100644 --- a/src/main-client.sml +++ b/src/main-client.sml @@ -16,24 +16,29 @@ * 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"