From: Kefu Chai Date: Mon, 5 Apr 2021 08:28:11 +0000 (+0800) Subject: tools/ceph-dencoder: print human-readable error message X-Git-Tag: v17.1.0~2366^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F40591%2Fhead;p=ceph.git tools/ceph-dencoder: print human-readable error message if $CEPH_LIB is not specified. Signed-off-by: Kefu Chai --- diff --git a/src/tools/ceph-dencoder/ceph_dencoder.cc b/src/tools/ceph-dencoder/ceph_dencoder.cc index 2bb73db0854e2..ccf51575c738c 100644 --- a/src/tools/ceph-dencoder/ceph_dencoder.cc +++ b/src/tools/ceph-dencoder/ceph_dencoder.cc @@ -23,6 +23,7 @@ namespace fs = std::filesystem; #include namespace fs = std::experimental::filesystem; #endif +#include #include "ceph_ver.h" #include "include/types.h" @@ -105,6 +106,12 @@ vector load_plugins() if (auto ceph_lib = getenv("CEPH_LIB"); ceph_lib) { mod_dir = ceph_lib; } + if (!fs::is_directory(mod_dir)) { + std::cerr << "unable to load dencoders from " + << std::quoted(mod_dir.native()) << ". " + << "it is not a directory." << std::endl; + return {}; + } vector dencoder_plugins; for (auto& entry : fs::directory_iterator(mod_dir)) { static const string_view DENC_MOD_PREFIX = "denc-mod-";