diff --git a/README.md b/README.md index 87ae8d8..7a578bf 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# autumn-cli +# autumn-cli Обертка над [cli](https://github.com/khorevaa/cli) библиотекой, которая предоставляет возможности создания консольных приложений на фреймворке [ОСень](https://github.com/autumn-library/autumn). @@ -38,7 +38,7 @@ &КомандаПриложения(Имя = "p plus", Описание = "Прибавляет 10 к заданному числу") // Аннотация, обозначающая, что этот класс - консольная команда Процедура ПриСозданииОбъекта() - + КонецПроцедуры &ВыполнениеКоманды // Метод, помеченный этой аннотацией будет выполнены при вызове команды. @@ -47,15 +47,15 @@ Результат = ПереданноеЧисло + 10; Сообщить("Результат сложения: " + Результат); - + КонецПроцедуры ``` -В этом примере мы определили класс как команду консольного приложения с помощью аннотации +В этом примере мы определили класс как команду консольного приложения с помощью аннотации ```&КомандаПриложения(Имя = "p plus", Описание = "Прибавляет 10 к заданному числу")``` -В которой указали имя команды и ее описание. А для определения аргумента команды, была создана переменная с аннотацией +В которой указали имя команды и ее описание. А для определения аргумента команды, была создана переменная с аннотацией ```&Аргумент(Имя = "ARG", Описание = "Значение числа")``` @@ -74,7 +74,7 @@ &КомандаПриложения(Имя = "H hello", Описание = "Поздоровается с пользователем") Процедура ПриСозданииОбъекта() - + КонецПроцедуры &ВыполнениеКоманды @@ -83,11 +83,11 @@ ТекстСообщения = "Привет " + ИмяПользователя + "!"; Сообщить(ТекстСообщения); - + КонецПроцедуры ``` -В этом примере, для определения опции команды, была создана переменная с аннотацией +В этом примере, для определения опции команды, была создана переменная с аннотацией ```&Опция(Имя = "n name", Описание = "Имя пользователя")``` @@ -97,13 +97,13 @@ ```Каталог/С/Классами/Команд/КомандаДата.os``` ```bsl -&КомандаПриложения(Имя = "d date", +&КомандаПриложения(Имя = "d date", Описание = "Выводит дату", Подкоманда = "ПодкомандаДень", Подкоманда = "ПодкомандаМесяц" ) Процедура ПриСозданииОбъекта() - + КонецПроцедуры ``` @@ -113,7 +113,7 @@ ```bsl &ПодкомандаПриложения(Имя = "day", Описание = "Выводит дату - начало дня") Процедура ПриСозданииОбъекта() - + КонецПроцедуры &ВыполнениеКоманды @@ -128,14 +128,14 @@ ```bsl &ПодкомандаПриложения(Имя = "month", Описание = "Выводит дату - начало месяца") Процедура ПриСозданииОбъекта() - + КонецПроцедуры &ВыполнениеКоманды Процедура СообщитьМесяц() Экспорт Сообщить(НачалоМесяца(ТекущаяДата())); - + КонецПроцедуры ``` @@ -192,7 +192,7 @@ Настройку вывода версии и имени приложения можно осуществить двумя способами. -1) Создать рядом с точкой входа файл +1) Создать рядом с точкой входа файл ```autumn-properties.json``` ```json @@ -227,11 +227,36 @@ КонецФункции ``` +## Настройка показа полного стека вызовов при ошибках приложения + +При ошибках, исключениях внутри приложения вместе с описанием ошибки по умолчанию выдается полный стек вызовов приложения. +Стек служебных вызовов из библиотек ОСени исключается для облегчения чтения логов пользователем. + +Чтобы исключить показ стека вызовов при ошибках, нужно + +- в файле `autumn-properties.json` указать значение `false` для ключа `ПоказыватьСтекВызововПриОшибке` в корневом разделе `cli` +- пример файла +```json +{ + "cli": { + "ИмяПриложения": "cli_test", + "ПолноеИмяПриложения": "cli_test v%{cli.ВерсияПриложения}", + "ВерсияПриложения": "1.0.1", + "ПоказыватьСтекВызововПриОшибке" : false + } +} +``` + +Чтобы включить показ стека вызовов при ошибках, можно +- или задать `true` +- или просто удалить ключ из файла для возврата поведения по умолчанию. + + ## Миграция с [cli](https://github.com/khorevaa/cli) -Инфраструктурный, условный ```main.os``` от вашего приложения не нужен. он должен быть запущен при помощи [ОСени](https://github.com/autumn-library/autumn). Дальше перед вами три пути: +Инфраструктурный, условный ```main.os``` от вашего приложения не нужен. он должен быть запущен при помощи [ОСени](https://github.com/autumn-library/autumn). Дальше перед вами три пути: -Первый - команды модифицировать аннотациями конструктора ```&КомандаПриложения``` или ```&ПодкомандаПриложения```. оставить методы ```ОписаниеКоманды``` и ```ВыполнитьКоманду```, тогда фреймворк поймет что они уже реализованы, и не будет генерировать для них код. +Первый - команды модифицировать аннотациями конструктора ```&КомандаПриложения``` или ```&ПодкомандаПриложения```. оставить методы ```ОписаниеКоманды``` и ```ВыполнитьКоманду```, тогда фреймворк поймет что они уже реализованы, и не будет генерировать для них код. Второй - команды модифицировать аннотациями конструктора ```&КомандаПриложения``` или ```&ПодкомандаПриложения```. убрать методы ```ОписаниеКоманды``` и ```ВыполнитьКоманду```, и создать поля класса, с необходимыми аннотациями, и метод с аннотацией ```&ВыполнениеКоманды```. В таком случае фреймворк сгенерит все остальное за вас. @@ -245,13 +270,13 @@ КонецПроцедуры Процедура ОписаниеКоманды(Знач КомандаПриложения) Экспорт - + КомандаПриложения.Опция("n name", "", "Имя пользователя"); КонецПроцедуры Процедура ВыполнитьКоманду(Знач КомандаПриложения) Экспорт - + ИмяПользователя = КомандаПриложения.ЗначениеОпции("name"); Сообщить("Привет " + ИмяПользователя); @@ -279,5 +304,3 @@ ## Больше примеров Описанные классы можно посмотреть в каталоге [example](example/) и еще больше примеров команд в каталоге [tests](tests/Классы) - -