name: autumn-cli description: Создаёт консольные приложения с командами и подкомандами на autumn-cli для OneScript. Использовать при CLI на OneScript, командах приложения, аргументах и опциях.
autumn-cli
Обёртка над библиотекой cli для создания консольных приложений на фреймворке Autumn. Команды, подкоманды, аргументы и опции описываются аннотациями на классах.
Подключение и запуск
Точка входа (например main.os):
#Использовать autumn
#Использовать autumn-cli
#Использовать "Каталог/С/Классами/Команд"
Поделка = Новый Поделка();
Поделка.ЗапуститьПриложение();
Каталог с командами должен содержать классы с аннотацией &КомандаПриложения или &ПодкомандаПриложения.
Команда приложения
Класс объявляется командой аннотацией на конструкторе. Метод, выполняемый при вызове команды, помечается &ВыполнениеКоманды.
&Аргумент(Имя = "ARG", Описание = "Значение числа")
&ТЧисло
Перем ПереданноеЧисло;
&КомандаПриложения(Имя = "p plus", Описание = "Прибавляет 10 к заданному числу")
Процедура ПриСозданииОбъекта()
КонецПроцедуры
&ВыполнениеКоманды
Процедура ВывестиРезультатСложения() Экспорт
Результат = ПереданноеЧисло + 10;
Сообщить("Результат сложения: " + Результат);
КонецПроцедуры
Параметры аннотации &КомандаПриложения: Имя — имя в CLI (например "p plus"), Описание — текст справки. Повторяемый параметр Подкоманда — имена желудей подкоманд.
Аргументы и опции
- Аргумент — позиционный аргумент: переменная с
&Аргумент(Имя = "ARG", Описание = "..."). - Опция — именованный параметр: переменная с
&Опция(Имя = "n name", Описание = "Имя пользователя").
Пример опции:
&Опция(Имя = "n name", Описание = "Имя пользователя")
Перем ИмяПользователя;
&КомандаПриложения(Имя = "H hello", Описание = "Поздоровается с пользователем")
Процедура ПриСозданииОбъекта()
КонецПроцедуры
&ВыполнениеКоманды
Процедура ПоприветствоватьПользователя() Экспорт
Сообщить("Привет " + ИмяПользователя + "!");
КонецПроцедуры
Типы аргументов и опций
Аннотации типа для полей: &ТЧисло, &ТСтрока, &ТБулево, &ТДата, &ТМассивДат, &ТМассивЧисел, &ТМассивСтрок, &ТПеречисление. Для булева также &Флаговый, &Флаг.
Дополнительно: &ВОкружении("ИМЯ_ПЕРЕМЕННОЙ"), &ПоУмолчанию("значение"), &СкрытьВСправке, &Обязательный, &Описание, &ПодробноеОписание, &Псевдоним, &Перечисление с параметрами Имя/Значение/Описание.
Подкоманды
Родительская команда перечисляет подкоманды через повторяемый параметр Подкоманда:
&КомандаПриложения(Имя = "d date", Описание = "Выводит дату",
Подкоманда = "ПодкомандаДень",
Подкоманда = "ПодкомандаМесяц"
)
Процедура ПриСозданииОбъекта()
КонецПроцедуры
Класс подкоманды:
&ПодкомандаПриложения(Имя = "day", Описание = "Выводит дату - начало дня")
Процедура ПриСозданииОбъекта()
КонецПроцедуры
&ВыполнениеКоманды
Процедура СообщитьДень() Экспорт
Сообщить(НачалоДня(ТекущаяДата()));
КонецПроцедуры
У &ПодкомандаПриложения те же параметры, что и у &КомандаПриложения (Идентификатор, Имя, Описание, Подкоманда, ДобавлятьАннотациюЖелудь).
Имя и версия приложения
Вариант 1 — файл autumn-properties.json в каталоге проекта:
{
"cli": {
"ИмяПриложения": "cli_test",
"ПолноеИмяПриложения": "cli_test v%{cli.ВерсияПриложения}",
"ВерсияПриложения": "1.0.1"
}
}
Вариант 2 — желудь с интерфейсом описания приложения в каталоге команд:
&Желудь("ОписаниеКонсольногоПриложения")
&Верховный
Процедура ПриСозданииОбъекта()
КонецПроцедуры
Функция ИмяПриложения() Экспорт
Возврат "demo-cli";
КонецФункции
Функция ПолноеИмяПриложения() Экспорт
Возврат "Демонстрационное консольное приложение";
КонецФункции
Функция ВерсияПриложения() Экспорт
Возврат "1.0";
КонецФункции
Миграция с чистой cli
Существующие команды с методами ОписаниеКоманды и ВыполнитьКоманду можно не переписывать: добавить аннотации &КомандаПриложения/&ПодкомандаПриложения и оставить эти методы — фреймворк их использует. Либо обернуть в Дуб с &Завязь и возвращать экземпляр легаси-класса.
Документация: autumn-library.github.io/autumn-cli.