autumn-cli

star 37

Создаёт консольные приложения с командами и подкомандами на autumn-cli для OneScript. Использовать при CLI на OneScript, командах приложения, аргументах и опциях.

yellow-hammer By yellow-hammer schedule Updated 3/1/2026

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.

Install via CLI
npx skills add https://github.com/yellow-hammer/skills-onescript --skill autumn-cli
Repository Details
star Stars 37
call_split Forks 4
navigation Branch main
article Path SKILL.md
More from Creator
yellow-hammer
yellow-hammer Explore all skills →