com um clique
autumn-cli
// Создаёт консольные приложения с командами и подкомандами на autumn-cli для OneScript. Использовать при CLI на OneScript, командах приложения, аргументах и опциях.
// Создаёт консольные приложения с командами и подкомандами на autumn-cli для OneScript. Использовать при CLI на OneScript, командах приложения, аргументах и опциях.
Создаёт веб-приложения и маршруты на Winow (веб-сервер на OneScript и Autumn). Использовать при веб-сервере на OneScript, маршрутизации, контроллерах Winow.
Создаёт и настраивает компонентные приложения на фреймворке Autumn (ОСень) для OneScript с DI и аннотациями. Использовать при работе с Autumn, Dependency Injection, «желудями», аннотациями &Желудь, &Дуб, &Верховный.
Пишет и структурирует код на OneScript (BSL без 1С). Использовать при работе с файлами .os, проектами OneScript, packagedef, opm, директивой
| name | autumn-cli |
| description | Создаёт консольные приложения с командами и подкомандами на autumn-cli для OneScript. Использовать при CLI на OneScript, командах приложения, аргументах и опциях. |
Обёртка над библиотекой 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";
КонецФункции
Существующие команды с методами ОписаниеКоманды и ВыполнитьКоманду можно не переписывать: добавить аннотации &КомандаПриложения/&ПодкомандаПриложения и оставить эти методы — фреймворк их использует. Либо обернуть в Дуб с &Завязь и возвращать экземпляр легаси-класса.
Документация: autumn-library.github.io/autumn-cli.