From f9aad533ee80268a5acac34179098a097968a48d Mon Sep 17 00:00:00 2001 From: Daniil Baturin Date: Wed, 15 Apr 2015 17:57:34 +0600 Subject: Add value validator module. --- src/value_checker.ml | 18 ++++++++++++++++++ src/value_checker.mli | 5 +++++ 2 files changed, 23 insertions(+) create mode 100644 src/value_checker.ml create mode 100644 src/value_checker.mli (limited to 'src') diff --git a/src/value_checker.ml b/src/value_checker.ml new file mode 100644 index 0000000..ed7c5d1 --- /dev/null +++ b/src/value_checker.ml @@ -0,0 +1,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) diff --git a/src/value_checker.mli b/src/value_checker.mli new file mode 100644 index 0000000..96d8f3c --- /dev/null +++ b/src/value_checker.mli @@ -0,0 +1,5 @@ +type value_constraint = Regex of string | External of string * string + +exception Bad_validator of string + +val validate_value : (string, string) Hashtbl.t -> value_constraint -> string -> bool -- cgit v1.2.3