val public_html = "public_html"
+fun logDirOf user =
+ if size user < 2 then
+ "/bad_username"
+ else
+ String.concat ["/var/log/apache/user/",
+ String.substring (user, 0, 1),
+ "/",
+ String.substring (user, 0, 2),
+ "/",
+ user,
+ "/apache/log"]
+
end
val public_html : string
+ val logDirOf : string -> string
+
end
fun reload () = if imVersion1 () then Config.Apache.reload1 else Config.Apache.reload
fun logDir {user, node, vhostId} =
- String.concat [Domain.homedirOf user,
- "/apache/log/",
+ String.concat [Config.Apache.logDirOf user,
+ "/",
node,
"/",
vhostId]
if Posix.FileSys.access (rld, []) then
()
else
- OS.FileSys.mkDir rld
+ Slave.mkDirAll rld
end
| _ =>
if Posix.FileSys.access (rld, []) then
()
else
- OS.FileSys.mkDir rld
+ Slave.mkDirAll rld
end
else
())
val inGroup : {user : string, group : string} -> bool
(* Check membership in a UNIX group. *)
+ val mkDirAll : string -> unit
+ (* [mkDirAll p] creates directory "p", creating all parent directories, as
+ * necessary. *)
end
(Posix.SysDB.Group.members (Posix.SysDB.getgrnam group))
handle OS.SysErr _ => false
+fun mkDirAll dir = ignore (OS.Process.system ("mkdir -p " ^ dir))
+
end