From 893bfe2e36f5a766e822b14fe5e7e4fc9b2b3f75 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 13 Jun 2014 13:34:01 +0100 Subject: [PATCH] mllib: Create a common utility function is_directory. This is a wrapper around Sys.is_directory which doesn't throw exceptions. --- builder/cache.ml | 9 ++------- mllib/common_utils.ml | 7 +++++++ v2v/cmdline.ml | 4 +--- 3 files changed, 10 insertions(+), 10 deletions(-) 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