Skip to content

Commit 068dc31

Browse files
authored
Update README.md
1 parent f05ea7c commit 068dc31

File tree

1 file changed

+26
-3
lines changed

1 file changed

+26
-3
lines changed

README.md

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,10 @@
116116
$ opm install -f <ПутьКФайлу>
117117
```
118118

119+
Либо, скачать библиотеку с помощью opm:
120+
121+
opm install cli
122+
119123
## Базовые принципы
120124

121125
При создании приложения необходимо указать имя приложения и описание:
@@ -124,35 +128,52 @@ $ opm install -f <ПутьКФайлу>
124128
Приложение = Новый КонсольноеПриложение("cli", "Помощник генерации приложения на основании шаблона cli");
125129
```
126130

127-
Для установки основной функции выполнения приложения необходимо создать класс, или сам модуль должен реализовать экспортную процедуру:
131+
Каждый возможный вариант выполнения - это "Команда". Команды могут создаваться явно, кроме того, само Приложение содержит в себе корневую (Основную) команду.
132+
133+
Каждая команда реализуется в виде отдельного класса. Каждый такой класс обязан иметь экспортную процедуру
134+
128135
```bsl
129136
Процедура ВыполнитьКоманду(Знач Команда) Экспорт
130137
КонецПроцедуры
131138
```
139+
140+
Для установки основной функции выполнения приложения в приложении надо установить основное действие. В простейшем случае основным действием может выступать сам стартовый сценарий:
141+
132142
Передать данный класс через процедуру:
133143
```bsl
134144
Приложение.УстановитьОсновноеДействие(ЭтотОбъект)
135145
```
136146

147+
### Встроенная команда "Версия"
137148

138149
Для добавления отображения версии через опции: ```-v, --version``` надо добавить строчку:
139150

140151
```bsl
141152
Приложение.Версия("v version", "1.2.3");
142153
```
143154

155+
Это позволит запускать приложение с ключом ``v`` или ``--version``:
156+
157+
my-app --version
158+
159+
### Запуск парсера аргументов и приложения в целом
160+
144161
Для запуска приложения необходимо добавить строчку:
145162

146163
```bsl
147164
Приложение.Запустить(АргументыКоманднойСтроки);
148165
```
149166

167+
Этот вызов является "точкой входа" в консольное приложение. В общем случае, после него уже не идет никакого дополнительного кода. Парсер анализирует аргументы и запускает команды автоматически.
168+
150169
## Параметры команд/приложения
151170

152171
Все параметры разделяются на два типа:
153172
* Опция
154173
* Аргумент
155174

175+
В общем случае, Опции имеют имена, аргументы являются позиционными. Кроме того, по умолчанию указание опций необязательно, а аргументов - обязательно. Это можно переопределить, но дефолтное поведение именно такое. Аргумент - обязателен, опция - нет.
176+
156177
## Опция
157178

158179
Опция может быть следующих простых типов:
@@ -312,7 +333,7 @@ cli поддерживает автоматическую инициализац
312333

313334
## Строка использования приложения (спек)
314335

315-
Синтаксис спек базируется на POSIX.
336+
Синтаксис спек базируется на POSIX. Спек является грамматикой парсера аргументов и определяет порядок следования аргументов и опций в командной строке, а также вариативность параметров. Спек формируется либо вручную, либо автоматически в момент вызова методов ```Опция/Аргумент```
316337

317338
### Опции
318339

@@ -341,7 +362,7 @@ cli поддерживает автоматическую инициализац
341362

342363
Пример добавления аргументов в команду:
343364

344-
```go
365+
```bsl
345366
Команда.Аргумент("SRC", ...);
346367
Команда.Аргумент("DST", ...);
347368
```
@@ -354,6 +375,8 @@ cli позволяет произвольно настраивать поряд
354375
Команда.Спек = "-f -g NAME -h PATH";
355376
```
356377

378+
В примере выше задана грамматика: в командой строке могут идти сначала флаги -f и -g, затем аргумент NAME, затем флаг -h, затем аргумент PATH.
379+
357380
## Необязательность
358381

359382
Для того, чтобы сделать аргументы или опции необязательными, их необходимо заключить в `[...]`:

0 commit comments

Comments
 (0)