You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| xargs -n 2 -t sh -c 'test -e $HOME/docker/$1.tar.gz || docker save $0 | gzip -2 > $HOME/docker/$1.tar.gz'
16
43
17
44
install:
18
-
- sudo opm install 1testrunner
19
-
- sudo opm install 1bdd
20
-
- sudo opm install
45
+
- docker pull evilbeaver/onescript:1.0.19
21
46
22
-
env:
23
-
global:
24
-
- CHANNEL=dev
47
+
script:
48
+
- docker version
49
+
- docker run -it -e OSCRIPT_VERSION=$OSCRIPT_VERSION -v $(pwd):/work_dir evilbeaver/onescript:1.0.19 sh -c 'cd /work_dir; sh /work_dir/travis-ci.sh; exit' | tee /tmp/test.log
Приложение = Новый КонсольноеПриложение("cli", "Помощник генерации приложения на основании шаблона cli");
125
181
```
126
182
127
-
Для установки основной функции выполнения приложения необходимо создать класс, или сам модуль должен реализовать экспортную процедуру:
183
+
Каждый возможный вариант выполнения - это "Команда". Команды могут создаваться явно, кроме того, само Приложение содержит в себе корневую (Основную) команду.
184
+
185
+
Каждая команда реализуется в виде отдельного класса. Каждый такой класс обязан иметь экспортную процедуру
186
+
128
187
```bsl
129
188
Процедура ВыполнитьКоманду(Знач Команда) Экспорт
130
189
КонецПроцедуры
131
190
```
191
+
192
+
Для установки основной функции выполнения приложения в приложении надо установить основное действие. В простейшем случае основным действием может выступать сам стартовый сценарий:
193
+
132
194
Передать данный класс через процедуру:
133
195
```bsl
134
196
Приложение.УстановитьОсновноеДействие(ЭтотОбъект)
135
197
```
136
198
199
+
### Встроенная команда "Версия"
137
200
138
201
Для добавления отображения версии через опции: ```-v, --version``` надо добавить строчку:
139
202
140
203
```bsl
141
204
Приложение.Версия("v version", "1.2.3");
142
205
```
143
206
207
+
Это позволит запускать приложение с ключом ``v`` или ``--version``:
208
+
209
+
my-app --version
210
+
211
+
### Запуск парсера аргументов и приложения в целом
212
+
144
213
Для запуска приложения необходимо добавить строчку:
145
214
146
215
```bsl
147
216
Приложение.Запустить(АргументыКоманднойСтроки);
148
217
```
149
218
219
+
Этот вызов является "точкой входа" в консольное приложение. В общем случае, после него уже не идет никакого дополнительного кода. Парсер анализирует аргументы и запускает команды автоматически.
220
+
150
221
## Параметры команд/приложения
151
222
152
223
Все параметры разделяются на два типа:
153
224
* Опция
154
225
* Аргумент
155
226
227
+
В общем случае, Опции имеют имена, аргументы являются позиционными. Кроме того, по умолчанию указание опций необязательно, а аргументов - обязательно. Это можно переопределить, но дефолтное поведение именно такое. Аргумент - обязателен, опция - нет.
228
+
156
229
## Опция
157
230
158
231
Опция может быть следующих простых типов:
@@ -346,7 +419,7 @@ cli поддерживает автоматическую инициализац
346
419
347
420
## Строка использования приложения (спек)
348
421
349
-
Синтаксис спек базируется на POSIX.
422
+
Синтаксис спек базируется на POSIX. Спек является грамматикой парсера аргументов и определяет порядок следования аргументов и опций в командной строке, а также вариативность параметров. Спек формируется либо вручную через указание в поле `Спек`, либо автоматически в момент вызова выполнения приложения / или команды.
350
423
351
424
### Опции
352
425
@@ -375,7 +448,7 @@ cli поддерживает автоматическую инициализац
375
448
376
449
Пример добавления аргументов в команду:
377
450
378
-
```go
451
+
```bsl
379
452
Команда.Аргумент("SRC", ...);
380
453
Команда.Аргумент("DST", ...);
381
454
```
@@ -388,6 +461,8 @@ cli позволяет произвольно настраивать поряд
388
461
Команда.Спек = "-f -g NAME -h PATH";
389
462
```
390
463
464
+
В примере выше задана грамматика: в командой строке могут идти сначала опции -f и -g, затем аргумент NAME, затем опция -h, затем аргумент PATH.
465
+
391
466
## Необязательность
392
467
393
468
Для того, чтобы сделать аргументы или опции необязательными, их необходимо заключить в `[...]`:
0 commit comments