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 Jan 31, 2018
2 parents cc8e59f + 5524e36 commit 65b5e15
Show file tree
Hide file tree
Showing 18 changed files with 449 additions and 90 deletions.
29 changes: 29 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
BSD 3-Clause License

Copyright (c) 2018, SilverBulleters, LLC
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

* Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# OneScript Version Manager

[![Quality Gate](https://sonar.silverbulleters.org/api/badges/gate?key=sonar-opensource-add-ovm)](https://sonar.silverbulleters.org/dashboard?id=sonar-opensource-add-ovm)
[![Tech Debt](https://sonar.silverbulleters.org/api/badges/measure?key=sonar-opensource-add-ovm&metric=sqale_debt_ratio)](https://sonar.silverbulleters.org/dashboard?id=sonar-opensource-add-ovm)

```
Приложение: ovm
OneScript Version Manager
Expand Down
3 changes: 2 additions & 1 deletion lib.config
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<package-def>
<class name="АктиваторOneScript" file="src/core/Классы/АктиваторOneScript.os"/>
<class name="УстановщикOneScript" file="src/core/Классы/УстановщикOneScript.os"/>
<class 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"/>
</package-def>
6 changes: 3 additions & 3 deletions packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
.Описание("OneScript Version Manager")
.ВерсияСреды("1.0.20")
// .ВключитьФайл("src")
.ЗависитОт("1commands", "1.3.1")
.ЗависитОт("fluent", "0.3.1")
.ЗависитОт("1commands", "1.3.2")
.ЗависитОт("fs")
.ЗависитОт("logos")
.ЗависитОт("tempfiles")
.ЗависитОт("cli", "0.9.5")
.ЗависитОт("cli", "0.9.7")
.ИсполняемыйФайл("src/cmd/ovm.os", "ovm")
;
6 changes: 4 additions & 2 deletions src/cmd/ovm.os
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,18 @@
КонсольноеПриложение.ДобавитьКоманду("list ls", "Вывести список установленных версий", Новый КомандаList());
КонсольноеПриложение.ДобавитьКоманду("run r", "Запустить исполняемый файл в окружении указанной версии", Новый КомандаRun());
КонсольноеПриложение.ДобавитьКоманду("which w", "Вывести путь к установленной версии OneScript", Новый КомандаWhich());

КонсольноеПриложение.ДобавитьКоманду("migrate", "Поместить установленный OneScript под контроль ovm", Новый КомандаMigrate());

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

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

Лог = ПараметрыOVM.ПолучитьЛог();
КодСостояния = 0;
Попытка
ВыполнитьПриложение();
Исключение
Сообщить(ОписаниеОшибки());
Лог.Ошибка(ОписаниеОшибки());
КодСостояния = 1;
КонецПопытки;

Expand Down
16 changes: 14 additions & 2 deletions src/cmd/Классы/КомандаInstall.os
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
#Использовать "../../core"

Перем Лог;

Процедура ОписаниеКоманды(Команда) Экспорт

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

Expand All @@ -15,7 +19,15 @@
Для Каждого ВерсияКУстановке Из МассивВерсийКУстановке Цикл
УстановщикOneScript.УстановитьOneScript(ВерсияКУстановке);
КонецЦикла;

Если МассивВерсийКУстановке.Количество() > 0 Тогда
Лог.Информация(
"Если вы хотите начать использовать версию OneScript, выполните команду:
|ovm use %1",
МассивВерсийКУстановке[МассивВерсийКУстановке.ВГраница()]
);
КонецЕсли;

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


Лог = ПараметрыOVM.ПолучитьЛог();
40 changes: 28 additions & 12 deletions src/cmd/Классы/КомандаList.os
Original file line number Diff line number Diff line change
@@ -1,20 +1,29 @@
#Использовать "../../core"

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

Процедура ОписаниеКоманды(КомандаПриложения) Экспорт

КомандаПриложения.Опция("remote r", Ложь, "Вывести список доступных к установке версий").Флаговый();
КомандаПриложения.Опция("quiet q", Ложь, "Тихий режим, вывод только алиасов версий");
КомандаПриложения.Опция("all a", Ложь, "Вывести список всех версий: установленных и доступных на сайте");
КомандаПриложения
.Опция("remote r", Ложь, "Вывести список доступных к установке версий")
.ВОкружении("OVM_LIST_REMOTE");

КомандаПриложения
.Опция("quiet q", Ложь, "Тихий режим, вывод только алиасов версий")
.ВОкружении("OVM_LIST_QUIET");

КомандаПриложения
.Опция("all a", Ложь, "Вывести список всех версий: установленных и доступных на сайте")
.ВОкружении("OVM_LIST_ALL");

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

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

ВыводитьСписокВерсийНаСайте = КомандаПриложения.ЗначениеОпции("--remote");
ВыводитьВсеВерсии = КомандаПриложения.ЗначениеОпции("--all");
ТихийРежим = КомандаПриложения.ЗначениеОпции("--quiet");
ВыводитьСписокВерсийНаСайте = КомандаПриложения.ЗначениеОпции("remote");
ВыводитьВсеВерсии = КомандаПриложения.ЗначениеОпции("all");
ТихийРежим = КомандаПриложения.ЗначениеОпции("quiet");

Если ВыводитьВсеВерсии Тогда
ВывестиВсеВерсии(ТихийРежим);
Expand All @@ -32,7 +41,7 @@

Для Каждого СтрокаВерсия Из ВсеВерсии Цикл

Если ТихийРежим И (СтрокаВерсия.ЭтоСимлинк ИЛИ НЕ СтрокаВерсия.ВерсияУстановлена) Тогда
Если ТихийРежим И СтрокаВерсия.ЭтоСимлинк Тогда
Продолжить;
КонецЕсли;

Expand All @@ -49,7 +58,9 @@
КонецЕсли;

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

КонецЦикла;

Expand All @@ -67,9 +78,13 @@
Сообщение = УстановленнаяВерсия.Алиас;
Иначе
Сообщение = СтрШаблон("%1 -> %2 (%3)", УстановленнаяВерсия.Алиас, УстановленнаяВерсия.Версия, УстановленнаяВерсия.Путь);
КонецЕсли;
КонецЕсли;

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

КонецЦикла;
КонецПроцедуры

Expand All @@ -82,9 +97,10 @@
Иначе
Сообщение = СтрШаблон("%1 (%2)", ДоступнаяВерсия.Алиас, ДоступнаяВерсия.Путь);
КонецЕсли;
Сообщить(Сообщение);
Лог.Информация(Сообщение);
КонецЦикла;

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

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

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

АктиваторOneScript.ВыполнитьМиграцию();

КонецПроцедуры
14 changes: 11 additions & 3 deletions src/cmd/Классы/КомандаRun.os
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,17 @@

Процедура ОписаниеКоманды(КомандаПриложения) Экспорт

КомандаПриложения.Аргумент("VERSION", "current", "Используемое окружение OneScript. Допустимо использовать трехномерные версии (1.0.17, 1.0.18), stable, dev, current");
КомандаПриложения.Аргумент("APP", "oscript", "Используемое приложение. Например, oscript, opm, vrunner...");
КомандаПриложения.Аргумент("ARGS", "", "Аргументы, передаваемые приложению.").ТМассивСтрок();
КомандаПриложения
.Аргумент("VERSION", "current", "Используемое окружение OneScript. Допустимо использовать трехномерные версии (1.0.17, 1.0.18), stable, dev, current")
.ВОкружении("OVM_RUN_VERSION");

КомандаПриложения
.Аргумент("APP", "oscript", "Используемое приложение. Например, oscript, opm, vrunner...")
.ВОкружении("OVM_RUN_APP");;

КомандаПриложения
.Аргумент("ARGS", "", "Аргументы, передаваемые приложению.").ТМассивСтрок()
.ВОкружении("OVM_RUN_ARGS");;

// TODO: Убрать, после реализации https://github.com/khorevaa/cli/issues/10
КомандаПриложения.Спек = "VERSION APP [-- ARGS...]";
Expand Down
23 changes: 16 additions & 7 deletions src/cmd/Классы/КомандаUninstall.os
Original file line number Diff line number Diff line change
@@ -1,10 +1,19 @@
Перем ВерсииOneScript;
Перем Лог;

Процедура ОписаниеКоманды(КомандаПриложения) Экспорт

КомандаПриложения.Опция("force f", Ложь, "Удалять даже текущую используемую версию");
КомандаПриложения.Опция("all a", Ложь, "Удаление всех установленных версий OneScript");
КомандаПриложения.Аргумент("VERSION", , "Удаляемая версия OneScript (возвможна передача нескольких значений). Допустимо использовать трехномерные версии (1.0.17, 1.0.18), latest, stable, dev, night-build")
КомандаПриложения
.Опция("force f", Ложь, "Удалять даже текущую используемую версию")
.ВОкружении("OVM_UNINSTALL_FORCE");

КомандаПриложения
.Опция("all a", Ложь, "Удаление всех установленных версий OneScript")
.ВОкружении("OVM_UNINSTALL_ALL");

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

КомандаПриложения.Спек = "[--force] [--all] [VERSION...]";
Expand All @@ -13,8 +22,8 @@
Процедура ВыполнитьКоманду(Знач КомандаПриложения) Экспорт

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

ДеинсталляторOneScript = Новый ДеинсталляторOneScript();

Expand All @@ -24,8 +33,7 @@

Для Каждого ВерсияКУдалению Из МассивВерсийКУдалению Цикл
Если ВерсииOneScript.ЭтоТекущаяВерсия(ВерсияКУдалению) И НЕ УдалятьТекущуюВерсию Тогда
Сообщение = СтрШаблон("Версия <%1> не удалена, т.к. является текущей.", ВерсияКУдалению);
Сообщить(Сообщение);
Лог.Информация("Версия <%1> не удалена, т.к. является текущей.", ВерсияКУдалению);
Продолжить;
КонецЕсли;
ДеинсталляторOneScript.УдалитьOneScript(ВерсияКУдалению);
Expand All @@ -36,3 +44,4 @@
КонецПроцедуры

ВерсииOneScript = Новый ВерсииOneScript();
Лог = ПараметрыOVM.ПолучитьЛог();
12 changes: 9 additions & 3 deletions src/cmd/Классы/КомандаUse.os
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,20 @@

Процедура ОписаниеКоманды(КомандаПриложения) Экспорт

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

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

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

Процедура ВыполнитьКоманду(Знач КомандаПриложения) Экспорт
ИспользуемаяВерсия = КомандаПриложения.ЗначениеАргумента("VERSION");
ВыполнятьУстановкуПриНеобходимости = КомандаПриложения.ЗначениеОпции("--install");
ВыполнятьУстановкуПриНеобходимости = КомандаПриложения.ЗначениеОпции("install");

АктиваторOneScript = Новый АктиваторOneScript();
АктиваторOneScript.ИспользоватьВерсиюOneScript(ИспользуемаяВерсия, ВыполнятьУстановкуПриНеобходимости);
Expand Down
9 changes: 7 additions & 2 deletions src/cmd/Классы/КомандаWhich.os
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
#Использовать "../../core"

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

Процедура ОписаниеКоманды(КомандаПриложения) Экспорт

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

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

Expand All @@ -14,8 +18,9 @@

ПутьКУстановленнойВерсии = ВерсииOneScript.ПолучитьПутьКУстановленнойВерсии(ИскомаяВерсия);

Сообщить(ПутьКУстановленнойВерсии);
Лог.Информация(ПутьКУстановленнойВерсии);

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

ВерсииOneScript = Новый ВерсииOneScript();
Лог = ПараметрыOVM.ПолучитьЛог();
Loading

0 comments on commit 65b5e15

Please sign in to comment.