val write = ref (fn _ : string => ())
val () = Apache.registerPre
- (fn {nodes, id, hostname} =>
+ (fn {user, nodes, id, hostname} =>
let
- val fds = map (fn node => Domain.domainFile {node = node,
- name = id ^ ".wbl"}) nodes
+ val fds = map (fn node =>
+ let
+ val fd = Domain.domainFile {node = node,
+ name = id ^ ".wbl"}
+ in
+ TextIO.output (fd, "LogFile\t");
+ TextIO.output (fd, Config.homeBase);
+ TextIO.output (fd, "/");
+ TextIO.output (fd, user);
+ TextIO.output (fd, "/apache/log/");
+ TextIO.output (fd, node);
+ TextIO.output (fd, "/");
+ TextIO.output (fd, hostname);
+ TextIO.output (fd, "/access.log\nOutputDir\t");
+ TextIO.output (fd, Config.Webalizer.outputDir);
+ TextIO.output (fd, "/");
+ TextIO.output (fd, node);
+ TextIO.output (fd, "/");
+ TextIO.output (fd, id);
+ TextIO.output (fd, "\n");
+ fd
+ end) nodes
in
files := fds;
write := (fn s => app (fn fd => TextIO.output (fd, s)) fds);
- !write "LogFile\t";
- !write Config.Apache.logDir;
- !write "/";
- !write hostname;
- !write "/access.log\nOutputDir\t";
- !write Config.Webalizer.outputDir;
- !write "/";
- !write id;
- !write "\nHostname\t";
+ !write "Hostname\t";
!write hostname;
!write "\nHideSite\t";
!write hostname;
^ " -f "
^ Config.Webalizer.configDir
^ "/"
+ ^ Slave.hostname ()
+ ^ "/"
^ base
^ ".conf"));
ignore (OS.Process.system (Config.rm
^ " -rf "
^ Config.Webalizer.outputDir
^ "/"
+ ^ Slave.hostname ()
+ ^ "/"
^ base)))
| _ =>
(ignore (OS.Process.system (Config.cp
^ " "
^ Config.Webalizer.configDir
^ "/"
+ ^ Slave.hostname ()
+ ^ "/"
^ base
^ ".conf"));
let
- val dir = Config.Webalizer.outputDir ^ "/" ^ base
+ val dir = Config.Webalizer.outputDir ^ "/" ^ Slave.hostname () ^ "/" ^ base
in
if Posix.FileSys.access (dir, []) then
()
else
- Posix.FileSys.mkdir (dir, Posix.FileSys.S.flags
- [Posix.FileSys.S.iroth,
- Posix.FileSys.S.ixoth,
- Posix.FileSys.S.irwxu,
- Posix.FileSys.S.irgrp,
- Posix.FileSys.S.iwgrp])
+ OS.FileSys.mkDir dir
end))
| _ => ()
end)
+val () = Domain.registerResetLocal (fn () =>
+ app (fn (node, _) =>
+ ignore (OS.Process.system (Config.rm ^ " -rf "
+ ^ Config.Webalizer.configDir ^ "/"
+ ^ node ^ "/*"))) Config.nodeIps)
+
end