Skip to content

Commit ecc8048

Browse files
committed
Finish 0.9.8
2 parents 8c3953b + 6eff77d commit ecc8048

16 files changed

+628
-117
lines changed

.travis.yml

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,18 @@ notifications:
66
email: false
77

88
before_install:
9-
- if [ $TRAVIS_OS_NAME == "linux" ]; then
10-
export CXX="g++-4.9" CC="gcc-4.9" DISPLAY=:99.0;
11-
sh -e /etc/init.d/xvfb start;
12-
sleep 3;
13-
fi
149
- sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
1510
- echo "deb http://download.mono-project.com/repo/ubuntu trusty main" | sudo tee /etc/apt/sources.list.d/mono-official.list
1611
- sudo apt-get update
1712
- sudo apt-get install mono-complete mono-devel
1813
- wget -O os.deb http://oscript.io/downloads/1_0_18/onescript-engine_1.0.18_all.deb
1914
- sudo dpkg -i *.deb; sudo apt install -f
20-
- sudo oscript /usr/share/oscript/lib/opm/src/opm.os install [email protected]
15+
- sudo opm install [email protected]
2116

2217
install:
23-
- sudo oscript /usr/share/oscript/lib/opm/src/opm.os install 1testrunner
24-
- sudo oscript /usr/share/oscript/lib/opm/src/opm.os install 1bdd
25-
- sudo oscript /usr/share/oscript/lib/opm/src/opm.os install
18+
- sudo opm install 1testrunner
19+
- sudo opm install 1bdd
20+
- sudo opm install
2621

2722
env:
2823
global:
@@ -35,11 +30,11 @@ cache:
3530
jobs:
3631
include:
3732
- stage: Тестирование
38-
script: oscript /usr/share/oscript/lib/opm/src/opm.os test
33+
script: opm test
3934
- stage: Сборка и публикация github & hub.oscript.io
4035
script: skip
4136
before_deploy:
42-
- oscript /usr/share/oscript/lib/opm/src/opm.os build ./
37+
- opm build ./
4338
deploy:
4439
- provider: releases
4540
api_key: "$GITHUB_OAUTH_TOKEN"
@@ -51,12 +46,12 @@ jobs:
5146
tags: true
5247
- provider: script
5348
skip_cleanup: true
54-
script: oscript /usr/share/oscript/lib/opm/src/opm.os push --token $GITHUB_OAUTH_TOKEN --channel dev --file ./cli-*.ospx;
49+
script: opm push --token $GITHUB_OAUTH_TOKEN --channel dev --file ./cli-*.ospx;
5550
on:
5651
branch: develop
5752
- provider: script
5853
skip_cleanup: true
59-
script: oscript /usr/share/oscript/lib/opm/src/opm.os push --token $GITHUB_OAUTH_TOKEN --channel stable --file ./cli-*.ospx;
54+
script: opm push --token $GITHUB_OAUTH_TOKEN --channel stable --file ./cli-*.ospx;
6055
on:
6156
branch: master
6257
tags: true

README.md

Lines changed: 44 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -160,28 +160,51 @@ $ opm install -f <ПутьКФайлу>
160160
* Строка
161161
* Число
162162
* Дата
163-
* Длительность (в работе)
164163

165164
Также опция может принимать массивы данных типов, например:
166165

167166
* МассивЧисел
168167
* МассивСтрок
169168
* МассивДат
170-
* МассивДлительностей (в работе)
169+
* Перечисление
170+
171+
Для простых типов поддерживается определение типа по значение по умолчанию. Пример,
172+
173+
```bsl
174+
Отладка = Команда.Опция("f force", ,"Описание опция")
175+
.ТБулево() // тип опции Булево
176+
;
177+
// Можно заменить на вызов
178+
179+
Отладка = Команда.Опция("f force", Ложь ,"Описание опция");
180+
181+
```
171182

172183
Пример `булево` опции:
173184

174185
```bsl
175186
Отладка = Команда.Опция("v debug", ложь ,"Описание опции")
176-
.Флаговый() / тип опции булево
187+
.Флаговый() // тип опции булево
177188
.ВОкружении("ИМЯ_ПЕРЕМЕННОЙ")
178189
.ПоУмолчанию(Ложь)
179190
.СкрытьВСправке(); // Любой тип
180191
181192
```
182-
183193
`ВОкружении` Возможна передача нескольких переменных окружения разделенных через **пробел**
184194

195+
Пример `перечисления` опции:
196+
197+
```bsl
198+
ЦветКонсоли = Команда.Опция("c color", "green" ,"Описание опции")
199+
.ТПеречисление() // тип опции перечисление
200+
.Перечисление("green", Новый ЗеленыйЦвет(), "Консоль будет зеленого цвета")
201+
.Перечисление("red", Цвета.Красный, "Консоль будет красного цвета")
202+
.Перечисление("Случайный", СлучайныйЦвет(), "Консоль будет случайного цвета")
203+
;
204+
```
205+
206+
Перечисление ограничивает пользователя в выборе значения опции, при этом разработчик для каждой опции может задавать свой тип значения
207+
185208
Подробное описание возможностей параметров команд и приложения [](./docs/ПараметрКоманды.md)
186209

187210
## Пример синтаксиса опций
@@ -218,20 +241,31 @@ $ opm install -f <ПутьКФайлу>
218241
* Строка
219242
* Число
220243
* Дата
221-
* Длительность (в работе)
244+
245+
Для простых типов поддерживается определение типа по значение по умолчанию. Пример,
246+
247+
```bsl
248+
Отладка = Команда.Аргумент("PATH", "" ,"Описание аргумента")
249+
.ТСтрока() // тип опции Строка
250+
;
251+
// Можно заменить на вызов
252+
253+
Отладка = Команда.Аргумент("PATH", "" ,"Описание аргумента");
254+
255+
```
222256

223257
Также аргументы могут принимать массивы данных типов, например:
224258

225259
* МассивЧисел
226260
* МассивСтрок
227261
* МассивДат
228-
* МассивДлительностей (в работе)
262+
* Перечисление (см. пример опций)
229263

230264
Пример `Строки` аргумента:
231265

232266
```bsl
233267
Отладка = Команда.Аргумент("PATH", "" ,"Описание аргумента")
234-
.ТСтрока() / тип опции Строка
268+
.ТСтрока() // тип опции Строка
235269
.ВОкружении("ИМЯ_ПЕРЕМЕННОЙ")
236270
.ПоУмолчанию(Ложь)
237271
.СкрытьВСправке(); // Любой тип
@@ -405,7 +439,7 @@ cli позволяет произвольно настраивать поряд
405439
```bsl
406440
Команда.Спек = "[OPTIONS]";
407441
```
408-
Для примера, для команды с опциями a, b, c и d, указание `[OPTIONS]` будет аналогично указанию:
442+
Для примера, для команды с опциями a, b, c и d, указание `[OPTIONS]` или `[ОПЦИИ]` будет аналогично указанию:
409443

410444
```bsl
411445
Команда.Спек = "[-a | -b | -c | -d]...";
@@ -442,7 +476,7 @@ cli позволяет произвольно настраивать поряд
442476
Короткая опция | '-' | [A-Za-z]
443477
Длинная опция | '--' | [A-Za-z][A-Za-z0-9]*
444478
Соединенные опции | '-' | [A-Za-z]+
445-
Все опции | '[OPTIONS]' |
479+
Все опции | '[OPTIONS]' или `[ОПЦИИ]` |
446480
Логическая группа | '(' любые другие символы ')' |
447481
Необязательная | '[' любые другие символы ']' |
448482
Повтор аргумента | '...' |
@@ -456,7 +490,7 @@ cli позволяет произвольно настраивать поряд
456490
По умолчанию, если не установлена разработчиком иная, cli автоматически создает для приложения и каждой команды строки использования, используя следующую логику:
457491

458492
* Начало с пустой строки
459-
* Если определена хоть одна опция, добавляется `[OPTIONS]` к текущей строке использования
493+
* Если определена хоть одна опция, добавляется `[OPTIONS]` или `[ОПЦИИ]` к текущей строке использования
460494
* Для каждого добавленного аргумента, добавляет его представление согласно очереди, объявления аргументов.
461495

462496
Для примера, при добавлении в команду следующих опций и аргументов:

docs/readme.md

Lines changed: 65 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,10 @@
7676
- [ТМассивДат](#тмассивдат)
7777
- [ТМассивЧисел](#тмассивчисел)
7878
- [ТМассивСтрок](#тмассивстрок)
79+
- [ТПеречисление](#тперечисление)
80+
- [Перечисление](#перечисление)
7981
- [Описание](#описание-1)
82+
- [ПодробноеОписание](#подробноеописание-2)
8083
- [Псевдоним](#псевдоним)
8184
- [Обязательный](#обязательный)
8285
- [ВФайле](#вфайле)
@@ -623,7 +626,7 @@
623626
// СтрокаПеременнаяОкружения - строка - имя переменной окружения, откуда получать значение
624627
// допустимо использование нескольких переменных окружения через пробел
625628
// Возвращаемое значение:
626-
// ЭтотОбъект - класс ПараметрКоманды
629+
// ПараметрКоманды - значение из переменной ЭтотОбъект
627630
```
628631

629632
##### СкрытьВСправке
@@ -633,7 +636,7 @@
633636
// возвращает текущий параметр команды
634637
//
635638
// Возвращаемое значение:
636-
// ЭтотОбъект - класс ПараметрКоманды
639+
// ПараметрКоманды - значение из переменной ЭтотОбъект
637640
```
638641

639642
##### ПоУмолчанию
@@ -646,7 +649,7 @@
646649
// ВходящееЗначение - произвольный - значение параметра по умолчанию
647650
//
648651
// Возвращаемое значение:
649-
// ЭтотОбъект - класс ПараметрКоманды
652+
// ПараметрКоманды - значение из переменной ЭтотОбъект
650653
```
651654

652655
##### Флаговый
@@ -656,7 +659,7 @@
656659
// возвращает текущий параметр команды
657660
//
658661
// Возвращаемое значение:
659-
// ЭтотОбъект - класс ПараметрКоманды
662+
// ПараметрКоманды - значение из переменной ЭтотОбъект
660663
// Вызов необязателен, автоматически определяется при создании параметра,
661664
// если передано значение по умолчанию
662665
```
@@ -668,7 +671,7 @@
668671
// возвращает текущий параметр команды
669672
//
670673
// Возвращаемое значение:
671-
// ЭтотОбъект - класс ПараметрКоманды
674+
// ПараметрКоманды - значение из переменной ЭтотОбъект
672675
// Вызов необязателен, автоматически определяется при создании параметра,
673676
// если передано значение по умолчанию
674677
```
@@ -680,7 +683,7 @@
680683
// возвращает текущий параметр команды
681684
//
682685
// Возвращаемое значение:
683-
// ЭтотОбъект - класс ПараметрКоманды
686+
// ПараметрКоманды - значение из переменной ЭтотОбъект
684687
// Вызов необязателен, автоматически определяется при создании параметра,
685688
// если передано значение по умолчанию
686689
```
@@ -695,7 +698,7 @@
695698
// ФорматДаты - Строка - формат даты, при приведении к дате из строки параметра по умолчанию (yyyy-MM-dd_HH:mm:ss)
696699
//
697700
// Возвращаемое значение:
698-
// ЭтотОбъект - класс ПараметрКоманды
701+
// ПараметрКоманды - значение из переменной ЭтотОбъект
699702
// Вызов необязателен, автоматически определяется при создании параметра,
700703
// если передано значение по умолчанию
701704
```
@@ -707,7 +710,7 @@
707710
// возвращает текущий параметр команды
708711
//
709712
// Возвращаемое значение:
710-
// ЭтотОбъект - класс ПараметрКоманды
713+
// ПараметрКоманды - значение из переменной ЭтотОбъект
711714
// Вызов необязателен, автоматически определяется при создании параметра,
712715
// если передано значение по умолчанию
713716
```
@@ -719,7 +722,7 @@
719722
// возвращает текущий параметр команды
720723
//
721724
// Возвращаемое значение:
722-
// ЭтотОбъект - класс ПараметрКоманды
725+
// ПараметрКоманды - значение из переменной ЭтотОбъект
723726
// Вызов необязателен, автоматически определяется при создании параметра,
724727
// если передано значение по умолчанию
725728
```
@@ -735,7 +738,7 @@
735738
// ВходящийРазделительМассива - символ - используется для разделения параметров при парсинге строки
736739
//
737740
// Возвращаемое значение:
738-
// ЭтотОбъект - класс ПараметрКоманды
741+
// ПараметрКоманды - значение из переменной ЭтотОбъект
739742
```
740743

741744
##### ТМассивЧисел
@@ -748,7 +751,7 @@
748751
// ВходящийРазделительМассива - символ - используется для разделения параметров при парсинге строки
749752
//
750753
// Возвращаемое значение:
751-
// ЭтотОбъект - класс ПараметрКоманды
754+
// ПараметрКоманды - значение из переменной ЭтотОбъект
752755
```
753756

754757
##### ТМассивСтрок
@@ -761,7 +764,40 @@
761764
// ВходящийРазделительМассива - символ - используется для разделения параметров при парсинге строки
762765
//
763766
// Возвращаемое значение:
764-
// ЭтотОбъект - класс ПараметрКоманды
767+
// ПараметрКоманды - значение из переменной ЭтотОбъект
768+
```
769+
770+
##### ТПеречисление
771+
772+
```bsl
773+
// Функция устанавливает тип параметра "Перечисление"
774+
// возвращает текущий параметр команды
775+
//
776+
// Параметры:
777+
// ДоступныеПеречисления - Соответсвие
778+
// Ключ - Строка
779+
// Значение - Структура ("Наименование, Значение, ДополнительнаяСправка")
780+
// Возвращаемое значение:
781+
// ПараметрКоманды - значение из переменной ЭтотОбъект
782+
// Вызов необязателен, автоматически определяется при создании параметра,
783+
// если передано значение по умолчанию
784+
785+
```
786+
787+
##### Перечисление
788+
789+
```bsl
790+
// Функция устанавливает произвольный тип параметра
791+
// возвращает текущий параметр команды
792+
//
793+
// Параметры:
794+
// НаименованиеПеречисления - строка - пользовательное значение перечисления
795+
// ЗначениеПеречисления - произвольный - системное значение перечисления
796+
// ДополнительнаяСправкаПеречисления - строка - дополнительная строка для справки
797+
//
798+
// Возвращаемое значение:
799+
// ПараметрКоманды - значение из переменной ЭтотОбъект
800+
//
765801
```
766802

767803
##### Описание
@@ -774,9 +810,22 @@
774810
// НовыеОписание - строка - строка с новым описанием, отличным от переданного в момент создания
775811
//
776812
// Возвращаемое значение:
777-
// ЭтотОбъект - класс ПараметрКоманды
813+
// ПараметрКоманды - значение из переменной ЭтотОбъект
778814
```
779815

816+
##### ПодробноеОписание
817+
818+
```bsl
819+
// Функция устанавливает подробное описание параметра для справки
820+
// возвращает текущий параметр команды
821+
//
822+
// Параметры:
823+
// ВходящееПодробноеОписание - строка - строка с новым описанием, отличным от переданного в момент создания
824+
//
825+
// Возвращаемое значение:
826+
// ПараметрКоманды - значение из переменной ЭтотОбъект
827+
//
828+
```
780829
##### Псевдоним
781830

782831
```bsl
@@ -787,7 +836,7 @@
787836
// СтрокаПсевдонима - строка - строка с новым псевдонимом, отличным от переданного в момент создания
788837
//
789838
// Возвращаемое значение:
790-
// ЭтотОбъект - класс ПараметрКоманды
839+
// ПараметрКоманды - значение из переменной ЭтотОбъект
791840
```
792841

793842
##### Обязательный
@@ -800,7 +849,7 @@
800849
// Признак - булево - признак обязательности указания данного параметра (по умолчанию Истина)
801850
//
802851
// Возвращаемое значение:
803-
// ЭтотОбъект - класс ПараметрКоманды
852+
// ПараметрКоманды - значение из переменной ЭтотОбъект
804853
```
805854

806855
##### ВФайле
@@ -829,5 +878,5 @@
829878
// ВходящийТипЭлементаПараметра - Тип - тип элементов значения параметра, если тип Массив
830879
//
831880
// Возвращаемое значение:
832-
// ЭтотОбъект - класс ПараметрКоманды
881+
// ПараметрКоманды - значение из переменной ЭтотОбъект
833882
```

packagedef

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
//
55

66
Описание.Имя("cli")
7-
.Версия("0.9.7")
7+
.Версия("0.9.8")
88
.Автор("Khorev Aleksey")
99
.АдресАвтора("[email protected]")
1010
.Описание("Данный пакет облегчает создание консольных приложений на Oscript")

0 commit comments

Comments
 (0)