Я программирую CLI, используя clap для анализа моих аргументов. Я хочу указать значения по умолчанию для параметров, но если есть файл конфигурации, файл конфигурации должен победить значения по умолчанию.
Легко расставить приоритеты аргументов командной строки по умолчанию, но мне нужен порядок приоритетов:
- аргументы командной строки
- файл конфигурации
- по умолчанию
Если файл конфигурации не задан параметрами командной строки, его также легко настроить, просто проанализировав файл конфигурации перед запуском parse_args
и передав значения из проанализированного файла конфигурации в default_value
, Проблема заключается в том, что если вы укажете файл конфигурации в командной строке, вы не сможете изменить значения по умолчанию до окончания анализа.
Единственный способ, которым я могу думать об этом, это не устанавливать default_value
, а затем вручную сопоставлять ""
в value_of
. Проблема в том, что в этом случае хлоп не сможет собрать полезную --help
.
Есть ли способ заставить хлопать читать сам файл конфигурации?