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
| 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 "\tSetEnvIf\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 \"";