#command-line #command-line-arguments
Вопрос:
Я хочу написать инструмент, в котором будет около 15-20 флагов, где некоторые флаги будут разрешены для использования в комбинациях, а другие-нет.
Пример:
Допустимый
./do -compare -src some_input_1 -dest some_input_2
Не допускается:
./do -compare -set some_input
Также порядок флагов не имеет значения в моем случае:
это может быть
./do -compare -src src_input -dest dest_input
или
./do -compare -dest dest_input -src src_input
Для меня это похоже на дерево, где в зависимости от входных аргументов я буду решать, какой путь выбрать и какой аргумент ожидать дальше. И если к тому времени у меня больше не будет дочерних узлов и все еще останутся входные аргументы, то «неправильный ввод».
Мое понимание:
(root)
/
(compare) (set)
/
(src) (dest)
| |
(dest) (src)
Как бы вы написали такую программу cli? Какие есть лучшие способы?