From 1b1e5fc3c53687fabcd9fd22d0e992d86ce6b8da Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Mon, 17 Mar 2025 15:34:03 +0100 Subject: [PATCH] fix: tool header was incorrectly formatted for universal binary --- tools/include/dwarfs/tool/tool.h | 2 ++ tools/src/dwarfs_main.cpp | 1 - tools/src/dwarfsck_main.cpp | 4 +--- tools/src/dwarfsextract_main.cpp | 3 +-- tools/src/mkdwarfs_main.cpp | 6 ++---- tools/src/tool/tool.cpp | 36 +++++++++++++++++++------------- 6 files changed, 28 insertions(+), 24 deletions(-) diff --git a/tools/include/dwarfs/tool/tool.h b/tools/include/dwarfs/tool/tool.h index 0412153f..f88328c3 100644 --- a/tools/include/dwarfs/tool/tool.h +++ b/tools/include/dwarfs/tool/tool.h @@ -47,6 +47,8 @@ using extra_deps_fn = std::function; std::string tool_header(std::string_view tool_name, std::string_view extra_info, extra_deps_fn const& extra_deps); +std::string tool_header_nodeps(std::string_view tool_name); + inline std::string tool_header(std::string_view tool_name, std::string_view extra_info = {}) { return tool_header(tool_name, extra_info, {}); diff --git a/tools/src/dwarfs_main.cpp b/tools/src/dwarfs_main.cpp index 27ad62b4..f6899dc2 100644 --- a/tools/src/dwarfs_main.cpp +++ b/tools/src/dwarfs_main.cpp @@ -1161,7 +1161,6 @@ int op_rename(char const* from, char const* to, unsigned int flags) { void usage(std::ostream& os, std::filesystem::path const& progname) { os << tool::tool_header("dwarfs", fmt::format(", fuse version {}", FUSE_USE_VERSION)) - << "\n\n" #if !DWARFS_FUSE_LOWLEVEL << "USING HIGH-LEVEL FUSE API\n\n" #endif diff --git a/tools/src/dwarfsck_main.cpp b/tools/src/dwarfsck_main.cpp index b6cd07f7..0f30d31e 100644 --- a/tools/src/dwarfsck_main.cpp +++ b/tools/src/dwarfsck_main.cpp @@ -256,9 +256,7 @@ int dwarfsck_main(int argc, sys_char** argv, iolayer const& iol) { auto constexpr usage = "Usage: dwarfsck [OPTIONS...]\n"; if (vm.contains("help") or !vm.contains("input")) { - iol.out << tool::tool_header("dwarfsck") << "\n\n" - << usage << "\n" - << opts << "\n"; + iol.out << tool::tool_header("dwarfsck") << usage << "\n" << opts << "\n"; return 0; } diff --git a/tools/src/dwarfsextract_main.cpp b/tools/src/dwarfsextract_main.cpp index ff58edb6..757a7cf6 100644 --- a/tools/src/dwarfsextract_main.cpp +++ b/tools/src/dwarfsextract_main.cpp @@ -145,8 +145,7 @@ int dwarfsextract_main(int argc, sys_char** argv, iolayer const& iol) { utility::filesystem_extractor::add_library_dependencies(deps); }; - iol.out << tool::tool_header("dwarfsextract", extra_deps) << "\n\n" - << usage << "\n" + iol.out << tool::tool_header("dwarfsextract", extra_deps) << usage << "\n" << opts << "\n"; return 0; } diff --git a/tools/src/mkdwarfs_main.cpp b/tools/src/mkdwarfs_main.cpp index da96b426..3d75d611 100644 --- a/tools/src/mkdwarfs_main.cpp +++ b/tools/src/mkdwarfs_main.cpp @@ -716,8 +716,7 @@ int mkdwarfs_main(int argc, sys_char** argv, iolayer const& iol) { std::string sep(30 + l_dc + l_sc + l_mc + l_or, '-'); - iol.out << tool::tool_header("mkdwarfs") << "\n\n" - << usage << opts << "\n" + iol.out << tool::tool_header("mkdwarfs") << usage << opts << "\n" << "Compression level defaults:\n" << " " << sep << "\n" << fmt::format(" Level Block {:{}s} {:s} Inode\n", @@ -769,8 +768,7 @@ int mkdwarfs_main(int argc, sys_char** argv, iolayer const& iol) { if (vm.contains("help") or !(vm.contains("input") or vm.contains("input-list")) or (!vm.contains("output") and !vm.contains("debug-filter"))) { - iol.out << tool::tool_header("mkdwarfs") << "\n\n" - << usage << "\n" + iol.out << tool::tool_header("mkdwarfs") << usage << "\n" << basic_opts << "\n"; return 0; } diff --git a/tools/src/tool/tool.cpp b/tools/src/tool/tool.cpp index dbca1a51..adb2b00f 100644 --- a/tools/src/tool/tool.cpp +++ b/tools/src/tool/tool.cpp @@ -75,16 +75,29 @@ std::string get_jemalloc_version() { } #endif -} // namespace - -std::string tool_header(std::string_view tool_name, std::string_view extra_info, - extra_deps_fn const& extra_deps) { +std::string +tool_header_impl(std::string_view tool_name, std::string_view extra_info = {}) { std::string date; if (DWARFS_GIT_DATE) { date = fmt::format(" [{}]", DWARFS_GIT_DATE); } + return fmt::format( + // clang-format off + R"( ___ ___ ___)""\n" + R"( | \__ __ ____ _ _ _| __/ __| Deduplicating Warp-speed)""\n" + R"( | |) \ V V / _` | '_| _|\__ \ Advanced Read-only File System)""\n" + R"( |___/ \_/\_/\__,_|_| |_| |___/ by Marcus Holland-Moritz)""\n\n" + // clang-format on + "{} ({}{}{})\nbuilt for {}\n\n", + tool_name, DWARFS_GIT_ID, date, extra_info, DWARFS_BUILD_ID); +} + +} // namespace + +std::string tool_header(std::string_view tool_name, std::string_view extra_info, + extra_deps_fn const& extra_deps) { library_dependencies deps; deps.add_common_libraries(); @@ -96,16 +109,11 @@ std::string tool_header(std::string_view tool_name, std::string_view extra_info, extra_deps(deps); } - return fmt::format( - // clang-format off - R"( ___ ___ ___)""\n" - R"( | \__ __ ____ _ _ _| __/ __| Deduplicating Warp-speed)""\n" - R"( | |) \ V V / _` | '_| _|\__ \ Advanced Read-only File System)""\n" - R"( |___/ \_/\_/\__,_|_| |_| |___/ by Marcus Holland-Moritz)""\n\n" - // clang-format on - "{} ({}{}{})\nbuilt for {}\n\n{}", - tool_name, DWARFS_GIT_ID, date, extra_info, DWARFS_BUILD_ID, - deps.as_string()); + return tool_header_impl(tool_name, extra_info) + deps.as_string() + "\n\n"; +} + +std::string tool_header_nodeps(std::string_view tool_name) { + return tool_header_impl(tool_name); } void add_common_options(po::options_description& opts,