diff --git a/builder/cache.ml b/builder/cache.ml index 581b2cfb2..683cd35b1 100644 --- a/builder/cache.ml +++ b/builder/cache.ml @@ -34,13 +34,8 @@ type t = { } let create ~debug ~directory = - (* Annoyingly Sys.is_directory throws an exception on failure - * (RHBZ#1022431). - *) - let is_dir = try Sys.is_directory directory with Sys_error _ -> false in - if is_dir = false then ( - mkdir directory 0o755 - ); + if not (is_directory directory) then + mkdir directory 0o755; { debug = debug; directory = directory; diff --git a/mllib/common_utils.ml b/mllib/common_utils.ml index 3b158681f..1aa81fb62 100644 --- a/mllib/common_utils.ml +++ b/mllib/common_utils.ml @@ -451,3 +451,10 @@ let is_block_device file = let is_char_device file = try (Unix.stat file).Unix.st_kind = Unix.S_CHR with Unix.Unix_error _ -> false + +(* Annoyingly Sys.is_directory throws an exception on failure + * (RHBZ#1022431). + *) +let is_directory path = + try Sys.is_directory path + with Sys_error _ -> false diff --git a/v2v/cmdline.ml b/v2v/cmdline.ml index 966fe42d4..52a495927 100644 --- a/v2v/cmdline.ml +++ b/v2v/cmdline.ml @@ -181,9 +181,7 @@ read the man page virt-v2v(1). | `Local -> if output_storage = "" then error (f_"-o local: output directory was not specified, use '-os /dir'"); - let dir_exists = - try Sys.is_directory output_storage with Sys_error _ -> false in - if not dir_exists then + if not (is_directory output_storage) then error (f_"-os %s: output directory does not exist or is not a directory") output_storage; OutputLocal output_storage