Skip to content

Commit

Permalink
Finish 0.9.8
Browse files Browse the repository at this point in the history
  • Loading branch information
khorevaa committed Feb 9, 2018
2 parents 8c3953b + 6eff77d commit ecc8048
Show file tree
Hide file tree
Showing 16 changed files with 628 additions and 117 deletions.
21 changes: 8 additions & 13 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,18 @@ notifications:
email: false

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

install:
- sudo oscript /usr/share/oscript/lib/opm/src/opm.os install 1testrunner
- sudo oscript /usr/share/oscript/lib/opm/src/opm.os install 1bdd
- sudo oscript /usr/share/oscript/lib/opm/src/opm.os install
- sudo opm install 1testrunner
- sudo opm install 1bdd
- sudo opm install

env:
global:
Expand All @@ -35,11 +30,11 @@ cache:
jobs:
include:
- stage: Тестирование
script: oscript /usr/share/oscript/lib/opm/src/opm.os test
script: opm test
- stage: Сборка и публикация github & hub.oscript.io
script: skip
before_deploy:
- oscript /usr/share/oscript/lib/opm/src/opm.os build ./
- opm build ./
deploy:
- provider: releases
api_key: "$GITHUB_OAUTH_TOKEN"
Expand All @@ -51,12 +46,12 @@ jobs:
tags: true
- provider: script
skip_cleanup: true
script: oscript /usr/share/oscript/lib/opm/src/opm.os push --token $GITHUB_OAUTH_TOKEN --channel dev --file ./cli-*.ospx;
script: opm push --token $GITHUB_OAUTH_TOKEN --channel dev --file ./cli-*.ospx;
on:
branch: develop
- provider: script
skip_cleanup: true
script: oscript /usr/share/oscript/lib/opm/src/opm.os push --token $GITHUB_OAUTH_TOKEN --channel stable --file ./cli-*.ospx;
script: opm push --token $GITHUB_OAUTH_TOKEN --channel stable --file ./cli-*.ospx;
on:
branch: master
tags: true
54 changes: 44 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,28 +160,51 @@ $ opm install -f <ПутьКФайлу>
* Строка
* Число
* Дата
* Длительность (в работе)

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

* МассивЧисел
* МассивСтрок
* МассивДат
* МассивДлительностей (в работе)
* Перечисление

Для простых типов поддерживается определение типа по значение по умолчанию. Пример,

```bsl
Отладка = Команда.Опция("f force", ,"Описание опция")
.ТБулево() // тип опции Булево
;
// Можно заменить на вызов
Отладка = Команда.Опция("f force", Ложь ,"Описание опция");
```

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

```bsl
Отладка = Команда.Опция("v debug", ложь ,"Описание опции")
.Флаговый() / тип опции булево
.Флаговый() // тип опции булево
.ВОкружении("ИМЯ_ПЕРЕМЕННОЙ")
.ПоУмолчанию(Ложь)
.СкрытьВСправке(); // Любой тип
```

`ВОкружении` Возможна передача нескольких переменных окружения разделенных через **пробел**

Пример `перечисления` опции:

```bsl
ЦветКонсоли = Команда.Опция("c color", "green" ,"Описание опции")
.ТПеречисление() // тип опции перечисление
.Перечисление("green", Новый ЗеленыйЦвет(), "Консоль будет зеленого цвета")
.Перечисление("red", Цвета.Красный, "Консоль будет красного цвета")
.Перечисление("Случайный", СлучайныйЦвет(), "Консоль будет случайного цвета")
;
```

Перечисление ограничивает пользователя в выборе значения опции, при этом разработчик для каждой опции может задавать свой тип значения

Подробное описание возможностей параметров команд и приложения [](./docs/ПараметрКоманды.md)

## Пример синтаксиса опций
Expand Down Expand Up @@ -218,20 +241,31 @@ $ opm install -f <ПутьКФайлу>
* Строка
* Число
* Дата
* Длительность (в работе)

Для простых типов поддерживается определение типа по значение по умолчанию. Пример,

```bsl
Отладка = Команда.Аргумент("PATH", "" ,"Описание аргумента")
.ТСтрока() // тип опции Строка
;
// Можно заменить на вызов
Отладка = Команда.Аргумент("PATH", "" ,"Описание аргумента");
```

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

* МассивЧисел
* МассивСтрок
* МассивДат
* МассивДлительностей (в работе)
* Перечисление (см. пример опций)

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

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

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

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

Для примера, при добавлении в команду следующих опций и аргументов:
Expand Down
81 changes: 65 additions & 16 deletions docs/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,10 @@
- [ТМассивДат](#тмассивдат)
- [ТМассивЧисел](#тмассивчисел)
- [ТМассивСтрок](#тмассивстрок)
- [ТПеречисление](#тперечисление)
- [Перечисление](#перечисление)
- [Описание](#описание-1)
- [ПодробноеОписание](#подробноеописание-2)
- [Псевдоним](#псевдоним)
- [Обязательный](#обязательный)
- [ВФайле](#вфайле)
Expand Down Expand Up @@ -623,7 +626,7 @@
// СтрокаПеременнаяОкружения - строка - имя переменной окружения, откуда получать значение
// допустимо использование нескольких переменных окружения через пробел
// Возвращаемое значение:
// ЭтотОбъект - класс ПараметрКоманды
// ПараметрКоманды - значение из переменной ЭтотОбъект
```

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

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

##### Флаговый
Expand All @@ -656,7 +659,7 @@
// возвращает текущий параметр команды
//
// Возвращаемое значение:
// ЭтотОбъект - класс ПараметрКоманды
// ПараметрКоманды - значение из переменной ЭтотОбъект
// Вызов необязателен, автоматически определяется при создании параметра,
// если передано значение по умолчанию
```
Expand All @@ -668,7 +671,7 @@
// возвращает текущий параметр команды
//
// Возвращаемое значение:
// ЭтотОбъект - класс ПараметрКоманды
// ПараметрКоманды - значение из переменной ЭтотОбъект
// Вызов необязателен, автоматически определяется при создании параметра,
// если передано значение по умолчанию
```
Expand All @@ -680,7 +683,7 @@
// возвращает текущий параметр команды
//
// Возвращаемое значение:
// ЭтотОбъект - класс ПараметрКоманды
// ПараметрКоманды - значение из переменной ЭтотОбъект
// Вызов необязателен, автоматически определяется при создании параметра,
// если передано значение по умолчанию
```
Expand All @@ -695,7 +698,7 @@
// ФорматДаты - Строка - формат даты, при приведении к дате из строки параметра по умолчанию (yyyy-MM-dd_HH:mm:ss)
//
// Возвращаемое значение:
// ЭтотОбъект - класс ПараметрКоманды
// ПараметрКоманды - значение из переменной ЭтотОбъект
// Вызов необязателен, автоматически определяется при создании параметра,
// если передано значение по умолчанию
```
Expand All @@ -707,7 +710,7 @@
// возвращает текущий параметр команды
//
// Возвращаемое значение:
// ЭтотОбъект - класс ПараметрКоманды
// ПараметрКоманды - значение из переменной ЭтотОбъект
// Вызов необязателен, автоматически определяется при создании параметра,
// если передано значение по умолчанию
```
Expand All @@ -719,7 +722,7 @@
// возвращает текущий параметр команды
//
// Возвращаемое значение:
// ЭтотОбъект - класс ПараметрКоманды
// ПараметрКоманды - значение из переменной ЭтотОбъект
// Вызов необязателен, автоматически определяется при создании параметра,
// если передано значение по умолчанию
```
Expand All @@ -735,7 +738,7 @@
// ВходящийРазделительМассива - символ - используется для разделения параметров при парсинге строки
//
// Возвращаемое значение:
// ЭтотОбъект - класс ПараметрКоманды
// ПараметрКоманды - значение из переменной ЭтотОбъект
```

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

##### ТМассивСтрок
Expand All @@ -761,7 +764,40 @@
// ВходящийРазделительМассива - символ - используется для разделения параметров при парсинге строки
//
// Возвращаемое значение:
// ЭтотОбъект - класс ПараметрКоманды
// ПараметрКоманды - значение из переменной ЭтотОбъект
```

##### ТПеречисление

```bsl
// Функция устанавливает тип параметра "Перечисление"
// возвращает текущий параметр команды
//
// Параметры:
// ДоступныеПеречисления - Соответсвие
// Ключ - Строка
// Значение - Структура ("Наименование, Значение, ДополнительнаяСправка")
// Возвращаемое значение:
// ПараметрКоманды - значение из переменной ЭтотОбъект
// Вызов необязателен, автоматически определяется при создании параметра,
// если передано значение по умолчанию
```

##### Перечисление

```bsl
// Функция устанавливает произвольный тип параметра
// возвращает текущий параметр команды
//
// Параметры:
// НаименованиеПеречисления - строка - пользовательное значение перечисления
// ЗначениеПеречисления - произвольный - системное значение перечисления
// ДополнительнаяСправкаПеречисления - строка - дополнительная строка для справки
//
// Возвращаемое значение:
// ПараметрКоманды - значение из переменной ЭтотОбъект
//
```

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

##### ПодробноеОписание

```bsl
// Функция устанавливает подробное описание параметра для справки
// возвращает текущий параметр команды
//
// Параметры:
// ВходящееПодробноеОписание - строка - строка с новым описанием, отличным от переданного в момент создания
//
// Возвращаемое значение:
// ПараметрКоманды - значение из переменной ЭтотОбъект
//
```
##### Псевдоним

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

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

##### ВФайле
Expand Down Expand Up @@ -829,5 +878,5 @@
// ВходящийТипЭлементаПараметра - Тип - тип элементов значения параметра, если тип Массив
//
// Возвращаемое значение:
// ЭтотОбъект - класс ПараметрКоманды
// ПараметрКоманды - значение из переменной ЭтотОбъект
```
2 changes: 1 addition & 1 deletion packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
//

Описание.Имя("cli")
.Версия("0.9.7")
.Версия("0.9.8")
.Автор("Khorev Aleksey")
.АдресАвтора("khorevaa@gmail.com")
.Описание("Данный пакет облегчает создание консольных приложений на Oscript")
Expand Down
Loading

0 comments on commit ecc8048

Please sign in to comment.