HCoop
/
hcoop
/
domtool2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Catch-all aliases working again
[hcoop/domtool2.git]
/
src
/
main-client.sml
diff --git
a/src/main-client.sml
b/src/main-client.sml
index
e017fc0
..
8d5f012
100644
(file)
--- a/
src/main-client.sml
+++ b/
src/main-client.sml
@@
-16,26
+16,37
@@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*)
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*)
-(* Driver for server *)
+(* Driver for configuration requests *)
+
+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
fun domtoolRoot () =
let
- val uid = Posix.ProcEnv.getuid ()
- val uname = Posix.SysDB.Passwd.name (Posix.SysDB.getpwuid uid)
- val dname = OS.Path.joinDirFile {dir = Config.homeBase,
- file = uname}
+ val dname = Posix.SysDB.Passwd.home (Posix.SysDB.getpwuid (uid ()))
in
OS.Path.joinDirFile {dir = dname,
in
OS.Path.joinDirFile {dir = dname,
- file = "domtool"}
+ file = "
.
domtool"}
end
end
-val
_
=
+val
(doit, doitDir, args)
=
case CommandLine.arguments () of
case CommandLine.arguments () of
+ "-tc" :: args => (fn fname => (Main.setupUser (); ignore (Main.check fname)),
+ Main.checkDir,
+ args)
+ | args => (Main.request,
+ Main.requestDir,
+ args)
+
+val _ =
+ case args of
[fname] =>
if Posix.FileSys.access (fname, []) then
[fname] =>
if Posix.FileSys.access (fname, []) then
-
Main.reques
t fname
+
doi
t fname
else
else
-
Main.reques
t (OS.Path.joinDirFile {dir = domtoolRoot (),
-
file = fname})
- | [] =>
Main.reques
tDir (domtoolRoot ())
+
doi
t (OS.Path.joinDirFile {dir = domtoolRoot (),
+ file = fname})
+ | [] =>
doi
tDir (domtoolRoot ())
| _ => print "Invalid command-line arguments\n"
| _ => print "Invalid command-line arguments\n"