fix: tool header was incorrectly formatted for universal binary

This commit is contained in:
Marcus Holland-Moritz 2025-03-17 15:34:03 +01:00
parent 068573a457
commit 1b1e5fc3c5
6 changed files with 28 additions and 24 deletions

View File

@ -47,6 +47,8 @@ using extra_deps_fn = std::function<void(library_dependencies&)>;
std::string tool_header(std::string_view tool_name, std::string_view extra_info, std::string tool_header(std::string_view tool_name, std::string_view extra_info,
extra_deps_fn const& extra_deps); extra_deps_fn const& extra_deps);
std::string tool_header_nodeps(std::string_view tool_name);
inline std::string inline std::string
tool_header(std::string_view tool_name, std::string_view extra_info = {}) { tool_header(std::string_view tool_name, std::string_view extra_info = {}) {
return tool_header(tool_name, extra_info, {}); return tool_header(tool_name, extra_info, {});

View File

@ -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) { void usage(std::ostream& os, std::filesystem::path const& progname) {
os << tool::tool_header("dwarfs", os << tool::tool_header("dwarfs",
fmt::format(", fuse version {}", FUSE_USE_VERSION)) fmt::format(", fuse version {}", FUSE_USE_VERSION))
<< "\n\n"
#if !DWARFS_FUSE_LOWLEVEL #if !DWARFS_FUSE_LOWLEVEL
<< "USING HIGH-LEVEL FUSE API\n\n" << "USING HIGH-LEVEL FUSE API\n\n"
#endif #endif

View File

@ -256,9 +256,7 @@ int dwarfsck_main(int argc, sys_char** argv, iolayer const& iol) {
auto constexpr usage = "Usage: dwarfsck [OPTIONS...]\n"; auto constexpr usage = "Usage: dwarfsck [OPTIONS...]\n";
if (vm.contains("help") or !vm.contains("input")) { if (vm.contains("help") or !vm.contains("input")) {
iol.out << tool::tool_header("dwarfsck") << "\n\n" iol.out << tool::tool_header("dwarfsck") << usage << "\n" << opts << "\n";
<< usage << "\n"
<< opts << "\n";
return 0; return 0;
} }

View File

@ -145,8 +145,7 @@ int dwarfsextract_main(int argc, sys_char** argv, iolayer const& iol) {
utility::filesystem_extractor::add_library_dependencies(deps); utility::filesystem_extractor::add_library_dependencies(deps);
}; };
iol.out << tool::tool_header("dwarfsextract", extra_deps) << "\n\n" iol.out << tool::tool_header("dwarfsextract", extra_deps) << usage << "\n"
<< usage << "\n"
<< opts << "\n"; << opts << "\n";
return 0; return 0;
} }

View File

@ -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, '-'); std::string sep(30 + l_dc + l_sc + l_mc + l_or, '-');
iol.out << tool::tool_header("mkdwarfs") << "\n\n" iol.out << tool::tool_header("mkdwarfs") << usage << opts << "\n"
<< usage << opts << "\n"
<< "Compression level defaults:\n" << "Compression level defaults:\n"
<< " " << sep << "\n" << " " << sep << "\n"
<< fmt::format(" Level Block {:{}s} {:s} Inode\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 if (vm.contains("help") or
!(vm.contains("input") or vm.contains("input-list")) or !(vm.contains("input") or vm.contains("input-list")) or
(!vm.contains("output") and !vm.contains("debug-filter"))) { (!vm.contains("output") and !vm.contains("debug-filter"))) {
iol.out << tool::tool_header("mkdwarfs") << "\n\n" iol.out << tool::tool_header("mkdwarfs") << usage << "\n"
<< usage << "\n"
<< basic_opts << "\n"; << basic_opts << "\n";
return 0; return 0;
} }

View File

@ -75,16 +75,29 @@ std::string get_jemalloc_version() {
} }
#endif #endif
} // namespace std::string
tool_header_impl(std::string_view tool_name, std::string_view extra_info = {}) {
std::string tool_header(std::string_view tool_name, std::string_view extra_info,
extra_deps_fn const& extra_deps) {
std::string date; std::string date;
if (DWARFS_GIT_DATE) { if (DWARFS_GIT_DATE) {
date = fmt::format(" [{}]", 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; library_dependencies deps;
deps.add_common_libraries(); 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); extra_deps(deps);
} }
return fmt::format( return tool_header_impl(tool_name, extra_info) + deps.as_string() + "\n\n";
// clang-format off }
R"( ___ ___ ___)""\n"
R"( | \__ __ ____ _ _ _| __/ __| Deduplicating Warp-speed)""\n" std::string tool_header_nodeps(std::string_view tool_name) {
R"( | |) \ V V / _` | '_| _|\__ \ Advanced Read-only File System)""\n" return tool_header_impl(tool_name);
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());
} }
void add_common_options(po::options_description& opts, void add_common_options(po::options_description& opts,