From 8d1743bf2753e2f7ab1619664520f3bc96a6fa9e Mon Sep 17 00:00:00 2001 From: Josh Berdine Date: Wed, 24 Mar 2021 14:17:42 -0700 Subject: [PATCH] [sledge] Make reading config file more robust Summary: There are exceptions everywhere in Yojson. Reviewed By: jvillard Differential Revision: D27279241 fbshipit-source-id: ce77fd241 --- sledge/cli/config.ml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sledge/cli/config.ml b/sledge/cli/config.ml index fea786118..23105a1bf 100644 --- a/sledge/cli/config.ml +++ b/sledge/cli/config.ml @@ -28,10 +28,15 @@ let contents = config_file config_file_env_var () ; `Assoc [] -let find key = Yojson.Basic.Util.(to_string_option (member key contents)) +module YBU = Yojson.Basic.Util + +let find key = + try YBU.to_string_option (YBU.member key contents) + with YBU.Type_error _ -> None let find_list key = - Yojson.Basic.Util.(filter_string (to_list (member key contents))) + try YBU.filter_string (YBU.to_list (YBU.member key contents)) + with YBU.Type_error _ -> [] let find_exn key = match find key with