X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/b59d9074993cac46d6c33803c0b850974c088cf0..c23af4454e79f11677c808b3e05e9d14061f71b1:/src/plugins/webalizer.sml?ds=sidebyside diff --git a/src/plugins/webalizer.sml b/src/plugins/webalizer.sml index 3c15edc..51e76c6 100644 --- a/src/plugins/webalizer.sml +++ b/src/plugins/webalizer.sml @@ -32,7 +32,7 @@ val () = Apache.registerPre name = id ^ ".wbl"} in TextIO.output (fd, "LogFile\t"); - TextIO.output (fd, Apache.logDir {user = user, node = node, vhostId = hostname}); + TextIO.output (fd, Apache.realLogDir {user = user, node = node, vhostId = hostname}); TextIO.output (fd, "/access.log\nOutputDir\t"); TextIO.output (fd, Config.Webalizer.outputDir); TextIO.output (fd, "/"); @@ -45,7 +45,7 @@ val () = Apache.registerPre in files := fds; write := (fn s => app (fn fd => TextIO.output (fd, s)) fds); - !write "Hostname\t"; + !write "HostName\t"; !write hostname; !write "\nHideSite\t"; !write hostname; @@ -71,49 +71,59 @@ val () = Slave.registerFileHandler (fn fs => in case OS.Path.splitBaseExt (#file spl) of {base, ext = SOME "wbl"} => - (case #action fs of - Slave.Delete => - (ignore (OS.Process.system (Config.rm - ^ " -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 - ^ " " - ^ #file fs - ^ " " - ^ Config.Webalizer.configDir - ^ "/" - ^ Slave.hostname () - ^ "/" - ^ base - ^ ".conf")); - let - val dir = Config.Webalizer.outputDir ^ "/" ^ Slave.hostname () ^ "/" ^ base - in - if Posix.FileSys.access (dir, []) then - () - else - OS.FileSys.mkDir dir - end)) + let + fun backupDir () = OS.Path.joinDirFile + {dir = Config.Webalizer.backupDir, + file = base} + in + case #action fs of + Slave.Delete _ => + (ignore (OS.Process.system (Config.rm + ^ " -f " + ^ Config.Webalizer.configDir + ^ "/" + ^ Slave.hostname () + ^ "/" + ^ base + ^ ".conf")); + Slave.moveDirCreate {from = Config.Webalizer.outputDir + ^ "/" + ^ Slave.hostname () + ^ "/" + ^ base, + to = backupDir ()}) + | _ => + (ignore (OS.Process.system (Config.cp + ^ " " + ^ #file fs + ^ " " + ^ Config.Webalizer.configDir + ^ "/" + ^ Slave.hostname () + ^ "/" + ^ base + ^ ".conf")); + let + val dir = Config.Webalizer.outputDir ^ "/" ^ Slave.hostname () ^ "/" ^ base + in + if Posix.FileSys.access (dir, []) then + () + else + Slave.moveDirCreate {from = backupDir (), + to = dir} + end) + end | _ => () end) val () = Domain.registerResetLocal (fn () => - app (fn (node, _) => + app (fn (node, _, _) => ignore (OS.Process.system (Config.rm ^ " -rf " ^ Config.Webalizer.configDir ^ "/" ^ node ^ "/*"))) Config.nodeIps) +val () = Domain.registerDescriber (Domain.considerAll + [Domain.Extension {extension = "wbl", + heading = fn host => "Webalizer config for " ^ host ^ ":"}]) + end