Scala парсер командной строки с поддержкой подкоманды

Я ищу парсер для командной строки для Scala с поддержкой подкоманд (что-то похожее на argparse в Python). Похоже, что существует несколько различных синтаксических анализаторов командной строки для Scala (Scopt, Argot и т.д.), Но ни один из них не поддерживает парсинг подкоманды. Мне просто не хватает того, что эти другие библиотеки поддерживают подкоманды, а если нет, существуют ли такие библиотеки?

Ответ 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 и должен делать все, что вам нужно.