blob: ed7c5d120366b482e08be0b1c7c48f801a8a8ca9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
type value_constraint = Regex of string | External of string * string
exception Bad_validator of string
let validate_value validators value_constraint value =
match value_constraint with
| Regex s ->
(try
let _ = Pcre.exec ~pat:s value in true
with Not_found -> false)
| External (t, c) ->
try
let validator = Hashtbl.find validators t in
let result = Unix.system (Printf.sprintf "%s %s %s" validator c value) in
match result with
| Unix.WEXITED 0 -> true
| _ -> false
with Not_found -> raise (Bad_validator t)
|