Повторный вариант группы с Commons CLI?
У меня есть определенный набор требований для анализа параметров командной строки. Мое намерение мало чем отличается от звуковой команды Linux, в которой вы можете указать несколько звуковых сигналов различной частоты и продолжительности. Я просто работаю с 4-битными цветами.
Пример правильной входной серии:
-z 1 -r 5 -g 2 -b 12 -z 4 --color=ffe --zone=3 --color=8,8,4
-Z или --z one - это разделитель, который запускает новую группу параметров. Цвета могут быть указаны с помощью настроек -r/g/b или --color. Я ожидаю, что обработаю это сам.
Пример неверного ввода:
--zone=1 -r 12 -g 15 -z 3 -r 8 -g 6 -b 10 -b 18
Это демонстрирует, почему я не могу просто работать с массивом опций. Моя программа должна быть в состоянии определить и предупредить, что между --zone=1
и в следующей зоне, он не нашел -b, и что между -z 3
и конец параметров, он нашел два-б. Использование массивов, предоставленных getOptionValues()
Я хотел бы видеть только два из -r/g/b, и предположить, что проблем не было, потому что они не привязаны к родителю или группе любого рода.
Мне нужно знать, может ли Commons CLI обрабатывать повторяющиеся группы опций, или мне нужно переключиться на другой парсер, или мне лучше написать свой собственный парсер для по-видимому небольшого разнообразия опций.