mirror of
https://github.com/mhx/dwarfs.git
synced 2025-09-09 20:41:04 -04:00
feat(mkdwarfs): show more defaults in command line help
This commit is contained in:
parent
5d7b83c8e5
commit
e4ffccc211
@ -354,6 +354,8 @@ int mkdwarfs_main(int argc, sys_char** argv, iolayer const& iol) {
|
|||||||
using namespace folly::gen;
|
using namespace folly::gen;
|
||||||
|
|
||||||
const size_t num_cpu = std::max(folly::hardware_concurrency(), 1u);
|
const size_t num_cpu = std::max(folly::hardware_concurrency(), 1u);
|
||||||
|
constexpr size_t const kDefaultMaxActiveBlocks{1};
|
||||||
|
constexpr size_t const kDefaultBloomFilterSize{4};
|
||||||
|
|
||||||
segmenter_factory::config sf_config;
|
segmenter_factory::config sf_config;
|
||||||
sys_string path_str, input_list_str, output_str, header_str;
|
sys_string path_str, input_list_str, output_str, header_str;
|
||||||
@ -407,6 +409,20 @@ int mkdwarfs_main(int argc, sys_char** argv, iolayer const& iol) {
|
|||||||
(from(catreg.categorizer_names()) | unsplit(", ")) +
|
(from(catreg.categorizer_names()) | unsplit(", ")) +
|
||||||
")";
|
")";
|
||||||
|
|
||||||
|
auto lvl_def_val = [](auto opt) {
|
||||||
|
return fmt::format("arg (={})", levels[default_level].*opt);
|
||||||
|
};
|
||||||
|
|
||||||
|
auto dep_def_val = [](auto dep) { return fmt::format("arg (={})", dep); };
|
||||||
|
|
||||||
|
auto cat_def_val = [](auto def) {
|
||||||
|
return fmt::format("[cat::]arg (={})", def);
|
||||||
|
};
|
||||||
|
|
||||||
|
auto lvl_cat_def_val = [](auto opt) {
|
||||||
|
return fmt::format("[cat::]arg (={})", levels[default_level].*opt);
|
||||||
|
};
|
||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
po::options_description basic_opts("Options");
|
po::options_description basic_opts("Options");
|
||||||
basic_opts.add_options()
|
basic_opts.add_options()
|
||||||
@ -435,7 +451,8 @@ int mkdwarfs_main(int argc, sys_char** argv, iolayer const& iol) {
|
|||||||
po::options_description advanced_opts("Advanced options");
|
po::options_description advanced_opts("Advanced options");
|
||||||
advanced_opts.add_options()
|
advanced_opts.add_options()
|
||||||
("block-size-bits,S",
|
("block-size-bits,S",
|
||||||
po::value<unsigned>(&sf_config.block_size_bits),
|
po::value<unsigned>(&sf_config.block_size_bits)
|
||||||
|
->value_name(lvl_def_val(&level_defaults::block_size_bits)),
|
||||||
"block size bits (size = 2^arg bits)")
|
"block size bits (size = 2^arg bits)")
|
||||||
("num-workers,N",
|
("num-workers,N",
|
||||||
po::value<size_t>(&num_workers)->default_value(num_cpu),
|
po::value<size_t>(&num_workers)->default_value(num_cpu),
|
||||||
@ -444,10 +461,12 @@ int mkdwarfs_main(int argc, sys_char** argv, iolayer const& iol) {
|
|||||||
po::value<int>(&compress_niceness)->default_value(5),
|
po::value<int>(&compress_niceness)->default_value(5),
|
||||||
"compression worker threads niceness")
|
"compression worker threads niceness")
|
||||||
("num-scanner-workers",
|
("num-scanner-workers",
|
||||||
po::value<size_t>(&num_scanner_workers),
|
po::value<size_t>(&num_scanner_workers)
|
||||||
"number of scanner (hashing/categorizing) worker threads")
|
->value_name(dep_def_val("num-workers")),
|
||||||
|
"number of scanner (hasher/categorizer) worker threads")
|
||||||
("num-segmenter-workers",
|
("num-segmenter-workers",
|
||||||
po::value<size_t>(&num_segmenter_workers),
|
po::value<size_t>(&num_segmenter_workers)
|
||||||
|
->value_name(dep_def_val("num-workers")),
|
||||||
"number of segmenter worker threads")
|
"number of segmenter worker threads")
|
||||||
("memory-limit,L",
|
("memory-limit,L",
|
||||||
po::value<std::string>(&memory_limit)->default_value("1g"),
|
po::value<std::string>(&memory_limit)->default_value("1g"),
|
||||||
@ -464,7 +483,8 @@ int mkdwarfs_main(int argc, sys_char** argv, iolayer const& iol) {
|
|||||||
categorize_desc.c_str())
|
categorize_desc.c_str())
|
||||||
("order",
|
("order",
|
||||||
po::value<std::vector<std::string>>(&order)
|
po::value<std::vector<std::string>>(&order)
|
||||||
->value_name("[cat::]arg")->multitoken()->composing(),
|
->value_name(lvl_cat_def_val(&level_defaults::order))
|
||||||
|
->multitoken()->composing(),
|
||||||
order_desc.c_str())
|
order_desc.c_str())
|
||||||
("max-similarity-size",
|
("max-similarity-size",
|
||||||
po::value<std::string>(&max_similarity_size),
|
po::value<std::string>(&max_similarity_size),
|
||||||
@ -513,19 +533,23 @@ int mkdwarfs_main(int argc, sys_char** argv, iolayer const& iol) {
|
|||||||
segmenter_opts.add_options()
|
segmenter_opts.add_options()
|
||||||
("max-lookback-blocks,B",
|
("max-lookback-blocks,B",
|
||||||
po::value<std::vector<std::string>>(&max_lookback_blocks)
|
po::value<std::vector<std::string>>(&max_lookback_blocks)
|
||||||
->value_name("[cat::]arg")->multitoken()->composing(),
|
->value_name(cat_def_val(kDefaultMaxActiveBlocks))
|
||||||
|
->multitoken()->composing(),
|
||||||
"how many blocks to scan for segments")
|
"how many blocks to scan for segments")
|
||||||
("window-size,W",
|
("window-size,W",
|
||||||
po::value<std::vector<std::string>>(&window_size)
|
po::value<std::vector<std::string>>(&window_size)
|
||||||
->value_name("[cat::]arg")->multitoken()->composing(),
|
->value_name(lvl_cat_def_val(&level_defaults::window_size))
|
||||||
|
->multitoken()->composing(),
|
||||||
"window sizes for block hashing")
|
"window sizes for block hashing")
|
||||||
("window-step,w",
|
("window-step,w",
|
||||||
po::value<std::vector<std::string>>(&window_step)
|
po::value<std::vector<std::string>>(&window_step)
|
||||||
->value_name("[cat::]arg")->multitoken()->composing(),
|
->value_name(lvl_cat_def_val(&level_defaults::window_step))
|
||||||
|
->multitoken()->composing(),
|
||||||
"window step (as right shift of size)")
|
"window step (as right shift of size)")
|
||||||
("bloom-filter-size",
|
("bloom-filter-size",
|
||||||
po::value<std::vector<std::string>>(&bloom_filter_size)
|
po::value<std::vector<std::string>>(&bloom_filter_size)
|
||||||
->value_name("[cat::]arg")->multitoken()->composing(),
|
->value_name(cat_def_val(kDefaultBloomFilterSize))
|
||||||
|
->multitoken()->composing(),
|
||||||
"bloom filter size (2^N*values bits)")
|
"bloom filter size (2^N*values bits)")
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -533,16 +557,20 @@ int mkdwarfs_main(int argc, sys_char** argv, iolayer const& iol) {
|
|||||||
compressor_opts.add_options()
|
compressor_opts.add_options()
|
||||||
("compression,C",
|
("compression,C",
|
||||||
po::value<std::vector<std::string>>(&compression)
|
po::value<std::vector<std::string>>(&compression)
|
||||||
->value_name("[cat::]arg")->multitoken()->composing(),
|
->value_name(lvl_cat_def_val(&level_defaults::data_compression))
|
||||||
|
->multitoken()->composing(),
|
||||||
"block compression algorithm")
|
"block compression algorithm")
|
||||||
("schema-compression",
|
("schema-compression",
|
||||||
po::value<std::string>(&schema_compression),
|
po::value<std::string>(&schema_compression)
|
||||||
|
->value_name(lvl_def_val(&level_defaults::schema_history_compression)),
|
||||||
"metadata schema compression algorithm")
|
"metadata schema compression algorithm")
|
||||||
("metadata-compression",
|
("metadata-compression",
|
||||||
po::value<std::string>(&metadata_compression),
|
po::value<std::string>(&metadata_compression)
|
||||||
|
->value_name(lvl_def_val(&level_defaults::metadata_compression)),
|
||||||
"metadata compression algorithm")
|
"metadata compression algorithm")
|
||||||
("history-compression",
|
("history-compression",
|
||||||
po::value<std::string>(&history_compression),
|
po::value<std::string>(&history_compression)
|
||||||
|
->value_name(lvl_def_val(&level_defaults::schema_history_compression)),
|
||||||
"history compression algorithm")
|
"history compression algorithm")
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -1170,7 +1198,7 @@ int mkdwarfs_main(int argc, sys_char** argv, iolayer const& iol) {
|
|||||||
contextual_option_parser cop("--max-lookback-blocks",
|
contextual_option_parser cop("--max-lookback-blocks",
|
||||||
sf_config.max_active_blocks, cp,
|
sf_config.max_active_blocks, cp,
|
||||||
max_lookback_parser);
|
max_lookback_parser);
|
||||||
sf_config.max_active_blocks.set_default(1);
|
sf_config.max_active_blocks.set_default(kDefaultMaxActiveBlocks);
|
||||||
cop.parse(max_lookback_blocks);
|
cop.parse(max_lookback_blocks);
|
||||||
categorizer_list.add_implicit_defaults(cop);
|
categorizer_list.add_implicit_defaults(cop);
|
||||||
LOG_VERBOSE << cop.as_string();
|
LOG_VERBOSE << cop.as_string();
|
||||||
@ -1200,7 +1228,7 @@ int mkdwarfs_main(int argc, sys_char** argv, iolayer const& iol) {
|
|||||||
contextual_option_parser cop("--bloom-filter-size",
|
contextual_option_parser cop("--bloom-filter-size",
|
||||||
sf_config.bloom_filter_size, cp,
|
sf_config.bloom_filter_size, cp,
|
||||||
bloom_filter_size_parser);
|
bloom_filter_size_parser);
|
||||||
sf_config.bloom_filter_size.set_default(4);
|
sf_config.bloom_filter_size.set_default(kDefaultBloomFilterSize);
|
||||||
cop.parse(bloom_filter_size);
|
cop.parse(bloom_filter_size);
|
||||||
categorizer_list.add_implicit_defaults(cop);
|
categorizer_list.add_implicit_defaults(cop);
|
||||||
LOG_VERBOSE << cop.as_string();
|
LOG_VERBOSE << cop.as_string();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user