При разработке и эксплуатации программного обеспечения автоматизация жизненно важна для повышения эффективности и точности. Мы часто сталкиваемся с повторяющимися задачами, которые отнимают много времени и подвержены ошибкам.

В этом сообщении блога будет рассмотрено создание специального приложения CLI для автоматизации или полуавтоматизации задач. Мы внимательно изучим библиотекуkotlinx-cli и ее способность сокращать шаблонный код.

Почему бы не использовать bash?

Kotlin предлагает множество преимуществ перед Bash для приложений CLI, особенно если ваше основное приложение уже построено на Kotlin. Использование Kotlin как для основного приложения, так и для инструментов обеспечивает согласованность и упрощает обслуживание. Надежная система типов в Kotlin сводит к минимуму ошибки во время выполнения, повышая надежность вашего приложения командной строки.

Кроме того, если ваше основное приложение разработано на Kotlin, вы можете легко повторно использовать структуры данных и конфигурации в своем приложении CLI, экономя время и усилия. Возможность повторного использования упрощает разработку и обеспечивает согласованность между вашими инструментами и основным приложением.

Кроме того, современный синтаксис и расширенные функции Kotlin делают код более читабельным и удобным в сопровождении.

Начиная

Давайте углубимся и начнем кодировать. Ожидается предварительное знакомство с Kotlin, Gradle и командной строкой. Как упоминалось ранее, мы будем использовать библиотеку kotlinx-cli для нужд CLI. Эта библиотека, разработанная JetBrains, доступна на GitHub.

Прежде чем углубиться, давайте разберемся, что предлагает библиотека, а что нет. Это не полноценная библиотека CLI, а действует как парсер командной строки. Его основная роль — помочь в организации команд, аргументов и параметров в приложении CLI. Однако ему не хватает таких функций, как чтение/запись файлов и интерактивный ввод. Тем не менее, обработка файлового ввода-вывода с помощью Kotlin проста, а интерактивные режимы часто не подходят в средах CI/CD, поэтому эти ограничения не являются проблемой для большинства сценариев. Еще одна примечательная библиотека — Spring Shell, которая предоставляет аналогичный функционал для приложений CLI. Однако я выбрал kotlinx-cli из-за ее встроенной интеграции с Kotlin.

Как всегда, полный код доступен на GitHub. В этой статье мы…