Skip to content

Commit

Permalink
Finish 0.9.0
Browse files Browse the repository at this point in the history
  • Loading branch information
khorevaa committed Dec 20, 2017
2 parents 7aac6d2 + 5e18810 commit 5e592d1
Show file tree
Hide file tree
Showing 35 changed files with 1,491 additions and 798 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*.ospx
tests.xml
41 changes: 37 additions & 4 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ sudo: required

dist: trusty

notifications:
email: false

before_install:
- if [ $TRAVIS_OS_NAME == "linux" ]; then
export CXX="g++-4.9" CC="gcc-4.9" DISPLAY=:99.0;
Expand All @@ -15,15 +18,45 @@ before_install:
- wget -O os.deb http://oscript.io/downloads/latest/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
- oscript

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

env:
global:
- CHANNEL=dev

cache:
directories:
- '$HOME/.m2/repository'
- '$HOME/.sonar/cache'

script:
- oscript /usr/share/oscript/lib/opm/src/opm.os test
jobs:
include:
- stage: Тестирование
script: oscript /usr/share/oscript/lib/opm/src/opm.os test
- stage: Сборка и публикация github & hub.oscript.io
script: skip
before_deploy:
- oscript /usr/share/oscript/lib/opm/src/opm.os build ./
deploy:
- provider: releases
api_key: "$GITHUB_OAUTH_TOKEN"
file_glob: true
file: cli*.ospx
skip_cleanup: true
on:
branch: master
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;
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;
on:
branch: master
tags: true
44 changes: 22 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@

## Мотивация

Для PR в cmdline, слишком большие изменения в API, т.е. обеспечить совместимость очень трудоемко.
Для PR в cmdline слишком большие изменения в API, т.е. обеспечить совместимость очень трудоемко.
Сравнительная таблица возможностей:

| | cli | cmdline |
Expand All @@ -90,7 +90,7 @@
| Встроенная команда version |||
| Команды |||
| Подкоманды || |
| Совмещение булевных (флаговых) опций `-xyz` || |
| Совмещение булевых (флаговых) опций `-xyz` || |
| Совмещение опции и значения `-fValue` || |
| Взаимоисключающие опции: `--start ❘ --stop` || |
| Необязательные опции : `[-a -b]` or `[-a [-b]]` || |
Expand Down Expand Up @@ -143,7 +143,7 @@ $ opm install -f <ПутьКФайлу>

## Параметры команд/приложения

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

Expand All @@ -154,14 +154,14 @@ $ opm install -f <ПутьКФайлу>
* Строка
* Число
* Дата
* Длительность
* Длительность (в работе)

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

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

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

Expand All @@ -183,9 +183,9 @@ $ opm install -f <ПутьКФайлу>
### Для типа булево:

* `-f` : одно тире для коротких имен
* `-f=false` : одно тире для коротких имен, и значение булево (true/false)
* `-f=false` : одно тире для коротких имен и значение булево (true/false)
* `--force` : двойное тире для длинных имен
* `-it` : группировка булевных опций, будет эквивалентно: -i -t
* `-it` : группировка булевых опций, будет эквивалентно: -i -t

### Для типа строка, число, дата, длительность:

Expand All @@ -196,14 +196,14 @@ $ opm install -f <ПутьКФайлу>
* `--extra=value` : двойное тире для длинных имен, через **равно** значение опции
* `--extra value` : двойное тире для длинных имен, через **пробел** значение опции

### Для массиво опций (МассивСтрок, МассивЧисел, МассивДат):
### Для массивов опций (МассивСтрок, МассивЧисел, МассивДат):
повторение опции создаст массив данных указанного типа опций:

* `-e PATH:/bin -e PATH:/usr/bin` : Массив содержащий `["/bin", "/usr/bin"]`
* `-ePATH:/bin -ePATH:/usr/bin` : Массив содержащий `["/bin", "/usr/bin"]`
* `-e=PATH:/bin -e=PATH:/usr/bin` : Массив содержащий `["/bin", "/usr/bin"]`
* `--env PATH:/bin --env PATH:/usr/bin` : Массив содержащий `["/bin", "/usr/bin"]`
* `--env=PATH:/bin --env=PATH:/usr/bin` : Массив содержащий `["/bin", "/usr/bin"]`
* `-e PATH:/bin -e PATH:/usr/bin` : Массив, содержащий `["/bin", "/usr/bin"]`
* `-ePATH:/bin -ePATH:/usr/bin` : Массив, содержащий `["/bin", "/usr/bin"]`
* `-e=PATH:/bin -e=PATH:/usr/bin` : Массив, содержащий `["/bin", "/usr/bin"]`
* `--env PATH:/bin --env PATH:/usr/bin` : Массив, содержащий `["/bin", "/usr/bin"]`
* `--env=PATH:/bin --env=PATH:/usr/bin` : Массив, содержащий `["/bin", "/usr/bin"]`

## Аргументы

Expand All @@ -212,14 +212,14 @@ $ opm install -f <ПутьКФайлу>
* Строка
* Число
* Дата
* Длительность
* Длительность (в работе)

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

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

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

Expand All @@ -238,7 +238,7 @@ $ opm install -f <ПутьКФайлу>
## Операторы

Оператор `--` устанавливает метку завершению любых опций.
Все что следует за данным оператором, будет считаться аргументом, даже если начинается с **тире**
Все, что следует за данным оператором, будет считаться аргументом, даже если начинается с **тире**


Для примера, если команда "ХочуФайл" принимает в качестве аргумента имя файла, но начинающегося с `-`, тогда строка запуска данной программы будет выглядеть так:
Expand Down Expand Up @@ -266,7 +266,7 @@ $ opm install -f <ПутьКФайлу>

cli поддерживает создание команд и подкоманд.
Неограниченное количество вложенных подкоманд.
А так же установки синонимов для команд и подкоманд.
А также установки синонимов для команд и подкоманд.

```bsl
Приложение = Новый КонсольноеПриложение("testapp", "Выполняет полезную работу");
Expand Down Expand Up @@ -338,7 +338,7 @@ cli позволяет произвольно настраивать поряд
Команда.Спек = "-f -g NAME -h PATH";
```

## Необзательность
## Необязательность

Для того, чтобы сделать аргументы или опции необязательными, их необходимо заключить в `[...]`:
```bsl
Expand Down Expand Up @@ -437,13 +437,13 @@ cli позволяет произвольно настраивать поряд

## Строка использования по умолчанию

По умолчанию, если не установлена разработчиком иная, cli автоматически создает для приложения и каждой команды строки использования используя следующую логику:
По умолчанию, если не установлена разработчиком иная, cli автоматически создает для приложения и каждой команды строки использования, используя следующую логику:

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

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

```bsl
Expand Down
File renamed without changes.
8 changes: 4 additions & 4 deletions packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@


Описание.Имя("cli")
.Версия("0.1.0")
.Версия("0.9.0")
.Автор("Khorev Aleksey")
.АдресАвтора("[email protected]")
.Описание("Данный пакет облегчает создание консольных приложений на Oscript")
Expand All @@ -71,14 +71,14 @@
.ВключитьФайл("package-loader.os")
.ВключитьФайл("packagedef")
.ЗависитОт("logos")
.ЗависитОт("delegate")
.ЗависитОт("delegate", "0.2.0")
.ЗависитОт("fluent")
//.ЗависитОт("asserts")
//.ЗависитОт("1bdd")
//.ЗависитОт("1testrunner")
//.ЗависитОт("package2", ">=1.1", "<2.0")
.ОпределяетКласс("КонсольноеПриложение", "src/core/Классы/КонсольноеПриложение.os")
.ОпределяетКласс("КомандаПриложения", "src/core/Классы/КомандаПриложения.os")
.ОпределяетКласс("ПараметрКоманды", "src/core/Классы/ПараметрКоманды.os")
.ОпределяетКласс("КомандаПриложения", "src/core/Классы/cmd/КомандаПриложения.os")
.ОпределяетКласс("ПараметрКоманды", "src/core/Классы/cmd/ПараметрКоманды.os")

;
34 changes: 0 additions & 34 deletions src/cmd/1cli.os

This file was deleted.

32 changes: 0 additions & 32 deletions src/cmd/templates/ИсполняемыйФайл.tpl.os

This file was deleted.

22 changes: 0 additions & 22 deletions src/cmd/templates/КомандаПриложения.tpl.os

This file was deleted.

29 changes: 0 additions & 29 deletions src/cmd/templates/ПараметрыПриложения.tpl.os

This file was deleted.

15 changes: 0 additions & 15 deletions src/cmd/Классы/КомандаGenerate.os

This file was deleted.

Loading

0 comments on commit 5e592d1

Please sign in to comment.