summaryrefslogtreecommitdiff
path: root/src/value_checker.ml
diff options
context:
space:
mode:
Diffstat (limited to 'src/value_checker.ml')
-rw-r--r--src/value_checker.ml39
1 files changed, 0 insertions, 39 deletions
diff --git a/src/value_checker.ml b/src/value_checker.ml
deleted file mode 100644
index aa88f7b..0000000
--- a/src/value_checker.ml
+++ /dev/null
@@ -1,39 +0,0 @@
-module F = Filename
-
-type value_constraint = Regex of string | External of string * string option
-
-exception Bad_validator of string
-
-let validate_value dir value_constraint value =
- match value_constraint with
- | Regex s ->
- (try
- let _ = Pcre.exec ~pat:s value in true
- with Not_found -> false)
- | External (v, c) ->
- (* XXX: Using Unix.system is a bad idea on multiple levels,
- especially when the input comes directly from the user...
- We should do something about it.
- *)
- let validator = F.concat dir v in
- let arg = BatOption.default "" c in
- let safe_arg = Printf.sprintf "'%s'" (Pcre.qreplace ~pat:"\"" ~templ:"\\\"" arg) in
- let result = Unix.system (Printf.sprintf "%s %s %s" validator safe_arg value) in
- match result with
- | Unix.WEXITED 0 -> true
- | Unix.WEXITED 127 -> raise (Bad_validator (Printf.sprintf "Could not execute validator %s" validator))
- | _ -> false
-
-(* If no constraints given, consider it valid.
- Otherwise consider it valid if it satisfies at least
- one constraint *)
-let validate_any validators constraints value =
- let rec aux validators constraints value =
- match constraints with
- | [] -> false
- | c :: cs -> if validate_value validators c value then true
- else aux validators cs value
- in
- match constraints with
- | [] -> true
- | _ -> aux validators constraints value