From 299f99bf2d4f5ea566088cce1992fa1b9a2c24be Mon Sep 17 00:00:00 2001 From: Daniil Baturin Date: Mon, 16 Jan 2017 14:45:20 +0700 Subject: Remove the assumptions about validator argument being mandatory. --- src/reference_tree.ml | 5 ++++- src/value_checker.ml | 5 +++-- src/value_checker.mli | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/reference_tree.ml b/src/reference_tree.ml index 87ab881..26b14b9 100644 --- a/src/reference_tree.ml +++ b/src/reference_tree.ml @@ -51,7 +51,10 @@ let load_constraint_from_xml d c = let cs = (Value_checker.Regex s) :: d.constraints in {d with constraints=cs} | Xml.Element ("validator", [("name", n); ("argument", a)], _) -> - let cs = (Value_checker.External (n, a)) :: d.constraints in + let cs = (Value_checker.External (n, Some a)) :: d.constraints in + {d with constraints=cs} + | Xml.Element ("validator", [("name", n)], _) -> + let cs = (Value_checker.External (n, None)) :: d.constraints in {d with constraints=cs} | _ -> raise (Bad_interface_definition "Malformed constraint") in Xml.fold aux d c diff --git a/src/value_checker.ml b/src/value_checker.ml index d4f0ddd..dad4596 100644 --- a/src/value_checker.ml +++ b/src/value_checker.ml @@ -1,6 +1,6 @@ module F = Filename -type value_constraint = Regex of string | External of string * string +type value_constraint = Regex of string | External of string * string option exception Bad_validator of string @@ -16,7 +16,8 @@ let validate_value dir value_constraint value = We should do something about it. *) let validator = F.concat dir v in - let result = Unix.system (Printf.sprintf "%s %s %s" validator c value) in + let arg = Util.substitute_default c "" in + let result = Unix.system (Printf.sprintf "%s %s %s" validator arg value) in match result with | Unix.WEXITED 0 -> true | Unix.WEXITED 127 -> raise (Bad_validator (Printf.sprintf "Could not execute validator %s" validator)) diff --git a/src/value_checker.mli b/src/value_checker.mli index 62f5b6b..d786f5e 100644 --- a/src/value_checker.mli +++ b/src/value_checker.mli @@ -1,4 +1,4 @@ -type value_constraint = Regex of string | External of string * string +type value_constraint = Regex of string | External of string * string option exception Bad_validator of string -- cgit v1.2.3