X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/b59d9074993cac46d6c33803c0b850974c088cf0..6c62564be57a4ff6bd63f12f6ec49ae7d9b53b7c:/src/plugins/webalizer.sml diff --git a/src/plugins/webalizer.sml b/src/plugins/webalizer.sml index 3c15edc..034e043 100644 --- a/src/plugins/webalizer.sml +++ b/src/plugins/webalizer.sml @@ -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,42 +71,48 @@ 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) @@ -116,4 +122,8 @@ val () = Domain.registerResetLocal (fn () => ^ Config.Webalizer.configDir ^ "/" ^ node ^ "/*"))) Config.nodeIps) +val () = Domain.registerDescriber (Domain.considerAll + [Domain.Extension {extension = "wbl", + heading = fn host => "Webalizer config for " ^ host}]) + end