Skip to content
This repository has been archived by the owner on May 25, 2021. It is now read-only.

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
nixel2007 committed Sep 7, 2018
2 parents 9a57637 + 923a8a9 commit 15b9b00
Show file tree
Hide file tree
Showing 26 changed files with 455 additions and 98 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ coverage/
junit-bdd\.xml

\.sonar/
\.scannerwork
\.sonarlint
1 change: 0 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ install:
- oscript -make src/cmd/ovm.os ovm.exe
- echo -e "#!/bin/sh\nmono ./ovm.exe \"\$@\"" > ~/bin/ovm
- chmod +x ~/bin/ovm
- cp /usr/share/oscript/bin/ScriptEngine.HostedScript.dll ScriptEngine.HostedScript.dll
- ovm

cache:
Expand Down
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@ ovm - утилита, предназначенная для установки,

### Linux

* Скачать `ovm.exe` и `ScriptEngine.HostedScript.dll` со страницы [страницы релизов GitHub](https://github.com/silverbulleters/ovm/releases)
* Файлы должны располагаться в одной папке
* Скачать `ovm.exe` со страницы [страницы релизов GitHub](https://github.com/silverbulleters/ovm/releases)
* Для быстрого использования приложения можно создать sh-файл со следующим содержанием:

```sh
Expand Down
2 changes: 1 addition & 1 deletion features/install-with-alias.feature
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#language: ru

Функциональность: Интеграционный сценарий
Функциональность: Установка движка с алиасом

Как разработчик библиотек
Я иметь возможность установить несколько версий одного и того же движка
Expand Down
25 changes: 25 additions & 0 deletions features/install-with-clean.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#language: ru

Функциональность: Установка движка с учетом сохранения библиотек

Как пользователь OneScript
Я иметь возможность обновлять движок без последующей переустановки библиотек
Чтобы не тратить свое время

Контекст:
Допустим Я устанавливаю переменной среды "OVM_INSTALL_PATH" значение "./temp/ovm"
И Я устанавливаю текущий каталог как рабочий каталог

Сценарий: Установка движка с сохранением библиотек
Допустим Я удаляю каталог "./temp/ovm"
И Я выполняю команду "ovm install stable"
И Я создаю каталог "my_lib" в подкаталоге "temp/ovm/stable/lib" рабочего каталога
Когда Я выполняю команду "ovm install stable"
Тогда В подкаталоге "temp/ovm/stable/lib" рабочего каталога существует каталог "my_lib"

Сценарий: Установка движка с удалением библиотек
Допустим Я удаляю каталог "./temp/ovm"
И Я выполняю команду "ovm install stable"
И Я создаю каталог "my_lib" в подкаталоге "temp/ovm/stable/lib" рабочего каталога
Когда Я выполняю команду "ovm install --clean stable"
Тогда Каталог "./temp/ovm/stable/lib/my_lib" не существует
2 changes: 1 addition & 1 deletion features/list.feature
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#language: ru

Функциональность: Интеграционный сценарий
Функциональность: Просмотр доступных версий

Как разработчик библиотек
Я хочу просмотраивать список версий OneScript
Expand Down
31 changes: 31 additions & 0 deletions features/step_definitions/install-with-clean.os
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd

Перем БДД; //контекст фреймворка 1bdd

// Метод выдает список шагов, реализованных в данном файле-шагов
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт
БДД = КонтекстФреймворкаBDD;

ВсеШаги = Новый Массив;

ВсеШаги.Добавить("ЯУстанавливаюТекущийКаталогКакРабочийКаталог");

Возврат ВсеШаги;
КонецФункции

// Реализация шагов

// Процедура выполняется перед запуском каждого сценария
Процедура ПередЗапускомСценария(Знач Узел) Экспорт

КонецПроцедуры

// Процедура выполняется после завершения каждого сценария
Процедура ПослеЗапускаСценария(Знач Узел) Экспорт

КонецПроцедуры

//Я устанавливаю текущий каталог как рабочий каталог
Процедура ЯУстанавливаюТекущийКаталогКакРабочийКаталог() Экспорт
БДД.СохранитьВКонтекст("РабочийКаталог", ТекущийКаталог());
КонецПроцедуры
2 changes: 1 addition & 1 deletion lib.config
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<package-def>
<class name="АктиваторOneScript" file="src/core/Классы/АктиваторOneScript.os"/>
<class name="ВерсииOneScript" file="src/core/Классы/ВерсииOneScript.os"/>
<module name="ВерсииOneScript" file="src/core/Модули/ВерсииOneScript.os"/>
<class name="ДеинсталляторOneScript" file="src/core/Классы/ДеинсталляторOneScript.os"/>
<class name="УстановщикOneScript" file="src/core/Классы/УстановщикOneScript.os"/>
<module name="ПараметрыOVM" file="src/core/Модули/ПараметрыOVM.os"/>
Expand Down
1 change: 1 addition & 0 deletions packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
.ВерсияСреды("1.0.20")
// .ВключитьФайл("src")
.ЗависитОт("1commands", "1.3.2")
.ЗависитОт("fluent", "0.3.1")
.ЗависитОт("fs")
.ЗависитОт("logos")
.ЗависитОт("tempfiles")
Expand Down
4 changes: 4 additions & 0 deletions sonarlint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"serverId": "silverbulleters",
"projectKey": "sonar-opensource-add-ovm"
}
65 changes: 51 additions & 14 deletions src/cmd/ovm.os
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,65 @@

///////////////////////////////////////////////////////////////////////////////

// Обработчик выполнения команды
//
// Параметры:
// КомандаПриложения - КомандаПриложения - Выполняемая команда
//
Процедура ВыполнитьКоманду(Знач КомандаПриложения) Экспорт

КомандаПриложения.ВывестиСправку();

КонецПроцедуры

Процедура ВыполнитьПриложение()

КонсольноеПриложение = Новый КонсольноеПриложение(ПараметрыПриложения.ИмяПриложения(), "OneScript Version Manager v" + ПараметрыПриложения.Версия());

КонсольноеПриложение = Новый КонсольноеПриложение(
ПараметрыПриложения.ИмяПриложения(),
"OneScript Version Manager v" + ПараметрыПриложения.Версия()
);

КонсольноеПриложение.Версия("v version", ПараметрыПриложения.Версия());

КонсольноеПриложение.ДобавитьКоманду("install i", "Установить OneScript указанных версий", Новый КомандаInstall());
КонсольноеПриложение.ДобавитьКоманду("use u", "Использовать OneScript указанной версии", Новый КомандаUse());
КонсольноеПриложение.ДобавитьКоманду("uninstall delete d", "Удалить OneScript указанных версий", Новый КомандаUninstall());
КонсольноеПриложение.ДобавитьКоманду("list ls", "Вывести список установленных и/или доступных версий OneScript", Новый КомандаList());
КонсольноеПриложение.ДобавитьКоманду("run r", "Запустить исполняемый файл в окружении указанной версии OneScript", Новый КомандаRun());
КонсольноеПриложение.ДобавитьКоманду("which w", "Вывести путь к установленной версии OneScript", Новый КомандаWhich());
КонсольноеПриложение.ДобавитьКоманду("migrate", "Поместить установленный системный OneScript под контроль ovm. Только для Windows", Новый КомандаMigrate());


КонсольноеПриложение.ДобавитьКоманду(
"install i",
"Установить OneScript указанных версий",
Новый КомандаInstall()
);
КонсольноеПриложение.ДобавитьКоманду(
"use u",
"Использовать OneScript указанной версии",
Новый КомандаUse()
);
КонсольноеПриложение.ДобавитьКоманду(
"uninstall delete d",
"Удалить OneScript указанных версий",
Новый КомандаUninstall()
);
КонсольноеПриложение.ДобавитьКоманду(
"list ls",
"Вывести список установленных и/или доступных версий OneScript",
Новый КомандаList()
);
КонсольноеПриложение.ДобавитьКоманду(
"run r",
"Запустить исполняемый файл в окружении указанной версии OneScript",
Новый КомандаRun()
);
КонсольноеПриложение.ДобавитьКоманду(
"which w",
"Вывести путь к установленной версии OneScript",
Новый КомандаWhich()
);
КонсольноеПриложение.ДобавитьКоманду(
"migrate",
"Поместить установленный системный OneScript под контроль ovm. Только для Windows",
Новый КомандаMigrate()
);

КонсольноеПриложение.УстановитьОсновноеДействие(ЭтотОбъект);
КонсольноеПриложение.Запустить(АргументыКоманднойСтроки);

КонецПроцедуры

Лог = ПараметрыOVM.ПолучитьЛог();
Expand Down
31 changes: 25 additions & 6 deletions src/cmd/Классы/КомандаInstall.os
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,41 @@

Перем Лог;

// Заполняет описание команды для библиотеки cli
//
// Параметры:
// КомандаПриложения - КомандаПриложения - Настраиваемая команда
//
Процедура ОписаниеКоманды(КомандаПриложения) Экспорт

КомандаПриложения.Опция("name", "", "Синоним (алиас) устанавливаемой версии для последущего использования в ovm use")
.ТСтрока()
.ВОкружении("OVM_INSTALL_NAME");

КомандаПриложения.Аргумент("VERSION", , "Устанавливаемая версия (версии) OneScript. Допустимо использовать трехномерные версии (1.0.17, 1.0.18), stable, dev. Может быть передано несколько значений")
.ТМассивСтрок()
.ВОкружении("OVM_INSTALL_VERSION");

КомандаПриложения.Опция("clean c", Ложь, "Полностью очищать каталог установки (включая установленные библиотеки)")
.ВОкружении("OVM_INSTALL_CLEAN");

КомандаПриложения.Аргумент(
"VERSION",
,
"Устанавливаемая версия (версии) OneScript. " +
"Допустимо использовать трехномерные версии (1.0.17, 1.0.18), stable, dev. " +
"Может быть передано несколько значений")
.ТМассивСтрок()
.ВОкружении("OVM_INSTALL_VERSION");

КонецПроцедуры

// Обработчик выполнения команды
//
// Параметры:
// КомандаПриложения - КомандаПриложения - Выполняемая команда
//
Процедура ВыполнитьКоманду(Знач КомандаПриложения) Экспорт

МассивВерсийКУстановке = КомандаПриложения.ЗначениеАргумента("VERSION");
АлиасВерсии = КомандаПриложения.ЗначениеОпции("name");
ОчищатьКаталогУстановки = КомандаПриложения.ЗначениеОпции("clean");

Если ЗначениеЗаполнено(АлиасВерсии) И МассивВерсийКУстановке.Количество() > 1 Тогда
ВызватьИсключение "Опция <--name> может быть задана только при установке одной версии OneScript";
Expand All @@ -26,12 +45,12 @@
УстановщикOneScript = Новый УстановщикOneScript();

Для Каждого ВерсияКУстановке Из МассивВерсийКУстановке Цикл
УстановщикOneScript.УстановитьOneScript(ВерсияКУстановке, АлиасВерсии);
УстановщикOneScript.УстановитьOneScript(ВерсияКУстановке, АлиасВерсии, ОчищатьКаталогУстановки);
КонецЦикла;

Если МассивВерсийКУстановке.Количество() > 0 Тогда
Лог.Информация(
"Если вы хотите начать использовать версию OneScript, выполните команду:
"Для начала использования версии OneScript, выполните команду:
|ovm use %1",
?(ЗначениеЗаполнено(АлиасВерсии), АлиасВерсии, МассивВерсийКУстановке[МассивВерсийКУстановке.ВГраница()])
);
Expand Down
39 changes: 30 additions & 9 deletions src/cmd/Классы/КомандаList.os
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
#Использовать "../../core"

Перем ВерсииOneScript;
Перем Лог;

// Заполняет описание команды для библиотеки cli
//
// Параметры:
// КомандаПриложения - КомандаПриложения - Настраиваемая команда
//
Процедура ОписаниеКоманды(КомандаПриложения) Экспорт

КомандаПриложения
Expand All @@ -19,6 +23,11 @@

КонецПроцедуры

// Обработчик выполнения команды
//
// Параметры:
// КомандаПриложения - КомандаПриложения - Выполняемая команда
//
Процедура ВыполнитьКоманду(Знач КомандаПриложения) Экспорт

ВыводитьСписокВерсийНаСайте = КомандаПриложения.ЗначениеОпции("remote");
Expand Down Expand Up @@ -56,9 +65,13 @@
?(СтрокаВерсия.ПутьСервер = "", "unknown", СтрокаВерсия.ПутьСервер)
);
КонецЕсли;

УстанавливаемыйСтатусСообщения = ?(СтрокаВерсия.Алиас = "current", СтатусСообщения.Информация, СтатусСообщения.БезСтатуса);
Аппендер = ПараметрыOVM.ПолучитьОсновнойАппендер();

УстанавливаемыйСтатусСообщения = ?(
СтрокаВерсия.Алиас = "current",
СтатусСообщения.Информация,
СтатусСообщения.БезСтатуса
);
Аппендер = ПараметрыOVM.ПолучитьОсновнойСпособВывода();
Аппендер.УстановитьСвойство("message-status", УстанавливаемыйСтатусСообщения);
Лог.Информация(Сообщение);

Expand All @@ -77,11 +90,20 @@
Если ТихийРежим Тогда
Сообщение = УстановленнаяВерсия.Алиас;
Иначе
Сообщение = СтрШаблон("%1 -> %2 (%3)", УстановленнаяВерсия.Алиас, УстановленнаяВерсия.Версия, УстановленнаяВерсия.Путь);
Сообщение = СтрШаблон(
"%1 -> %2 (%3)",
УстановленнаяВерсия.Алиас,
УстановленнаяВерсия.Версия,
УстановленнаяВерсия.Путь
);
КонецЕсли;

УстанавливаемыйСтатусСообщения = ?(УстановленнаяВерсия.Алиас = "current", СтатусСообщения.Информация, СтатусСообщения.БезСтатуса);
Аппендер = ПараметрыOVM.ПолучитьОсновнойАппендер();

УстанавливаемыйСтатусСообщения = ?(
УстановленнаяВерсия.Алиас = "current",
СтатусСообщения.Информация,
СтатусСообщения.БезСтатуса
);
Аппендер = ПараметрыOVM.ПолучитьОсновнойСпособВывода();
Аппендер.УстановитьСвойство("message-status", УстанавливаемыйСтатусСообщения);
Лог.Информация(Сообщение);

Expand All @@ -102,5 +124,4 @@

КонецПроцедуры

ВерсииOneScript = Новый ВерсииOneScript();
Лог = ПараметрыOVM.ПолучитьЛог();
5 changes: 5 additions & 0 deletions src/cmd/Классы/КомандаMigrate.os
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
// Обработчик выполнения команды
//
// Параметры:
// КомандаПриложения - КомандаПриложения - Выполняемая команда
//
Процедура ВыполнитьКоманду(Знач КомандаПриложения) Экспорт

АктиваторOneScript = Новый АктиваторOneScript();
Expand Down
Loading

0 comments on commit 15b9b00

Please sign in to comment.