(* HCoop Domtool (http://hcoop.sourceforge.net/)
* Copyright (c) 2006-2009, Adam Chlipala
- * Copyright (c) 2013 Clinton Ebadi
+ * Copyright (c) 2013,2014,2015,2017,2018,2019 Clinton Ebadi
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
val _ = Env.type_one "rewrite_arg"
Env.string
- (CharVector.all (fn ch => (Char.isGraph ch) andalso not (List.exists (fn c => ch = c) [ #"[", #"]", #",", #"\"", #"'", #"=", #":", "\\" ])))
+ (* #":" is permitted here, but really ought to be disallowed or escaped for E=VAR:VAL *)
+ (CharVector.all (fn ch => (Char.isGraph ch) andalso not (List.exists (fn c => ch = c) [ #"[", #"]", #",", #"\"", #"'", #"=", #"\\" ])))
val _ = Env.type_one "suexec_flag"
Env.bool
write prefix;
write "\"\n"))
+val _ = Env.type_one "mod_rewrite_trace_level"
+ Env.int
+ (fn n => n > 0 andalso n <= 8)
+
val () = Env.action_one "rewriteLogLevel"
("level", Env.int)
- (fn level =>
+ (fn 0 =>
(checkRewrite ();
- write "\tRewriteLog ";
- write' (fn x => x);
- write "/rewrite.log\n\tRewriteLogLevel ";
- write (Int.toString level);
- write "\n"))
+ write "\tLogLevel rewrite:warn\n")
+ | level =>
+ (checkRewrite ();
+ write "\tLogLevel rewrite:trace";
+ write (Int.toString level);
+ write "\n"))
val () = Env.action_two "alias"
("from", Env.string, "to", Env.string)
app (fn opt => (write " "; write opt)) opts;
write "\n"))
+val () = Env.action_one "directorySlash"
+ ("enable", Env.bool)
+ (fn enable =>
+ (write "\tDirectorySlash ";
+ if enable then write "On" else write "Off";
+ write "\n"))
+
val () = Env.action_one "serverAliasHost"
("host", Env.string)
(fn host =>
| ch => str ch) value);
write "\"\n"))
+val () = Env.action_three "setEnvIf"
+ ("attribute", Env.string, "match", Env.string, "env_variables", Env.list Env.string)
+ (fn (attribute, match, envs) =>
+ case envs of
+ [] => (print "WARNING: Skipped setEnvIf, no environment variables provided.\n")
+ | envs =>
+ (write "\tSetEnvIf\t\"";
+ write attribute;
+ write "\"\t\"";
+ write match;
+ write "\"";
+ app (fn env => (write "\t"; write env)) envs;
+ write "\n"))
+
+val () = Env.action_three "setEnvIfNoCase"
+ ("attribute", Env.string, "match", Env.string, "env_variables", Env.list Env.string)
+ (fn (attribute, match, envs) =>
+ case envs of
+ [] => (print "WARNING: Skipped setEnvIfNoCase, no environment variables provided.\n")
+ | envs =>
+ (write "\tSetEnvIfNoCase\t\"";
+ write attribute;
+ write "\"\t\"";
+ write match;
+ write "\"";
+ app (fn env => (write "\t"; write env)) envs;
+ write "\n"))
+
val () = Env.action_one "diskCache"
("path", Env.string)
(fn path => (write "\tCacheEnable disk \"";