Я ищу парсер для командной строки для Scala с поддержкой подкоманд (что-то похожее на argparse в Python). Похоже, что существует несколько различных синтаксических анализаторов командной строки для Scala (Scopt, Argot и т.д.), Но ни один из них не поддерживает парсинг подкоманды. Мне просто не хватает того, что эти другие библиотеки поддерживают подкоманды, а если нет, существуют ли такие библиотеки?
Scala парсер командной строки с поддержкой подкоманды
Ответ 1
Вам может быть интересно picocli. Он поддерживает подкоманды, среди многих других.
Picocli генерирует раскрашенную помощь использования, когда базовая платформа поддерживает escape-коды ANSI.
Ответ 2
Слишком поздно, чтобы помочь вопроснику, я думаю, но есть синтаксический анализатор командной строки, который теперь поддерживает подкоманды (feb 2013).
Scallop поддерживает подкоманды. Скопировано из README (см. Последнюю строку цитаты):
Scallop supports:
- flag, single-value and multiple value options
- POSIX-style short option names (-a) with grouping (-abc)
- GNU-style long option names (--opt)
- Property arguments (-Dkey=value, -D key1=value key2=value)
- Non-string types of options and properties values (with extendable converters)
- Powerful matching on trailing args
- Subcommands
Ответ 3
Если вы хотите сохранить свою программу более или менее в пределах набора функциональных идиом, рассмотрите что-то вроде scala-optparse-applicative
:
Ответ 4
Хотя я считаю, что вы не должны делать приложения с командной строкой в Scala, если нужно, вы можете проверить Cédric Buest JCommander, который является библиотекой java, но, очевидно, будет работать для Scala и должен делать все, что вам нужно.