diff --git a/packagedef b/packagedef
index ea54bc1..0c4831a 100644
--- a/packagedef
+++ b/packagedef
@@ -93,6 +93,7 @@
.ЗависитОт("gitrunner", "1.6.0")
.ВключитьФайл("packagedef")
.ВключитьФайл("src")
+ .ВключитьФайл("tasks")
.ВключитьФайл("oscript_modules")
.ОпределяетКласс("КэшУстановленныхПакетов", "src/core/Классы/КэшУстановленныхПакетов.os")
.ОпределяетКласс("МенеджерПолученияПакетов", "src/core/Классы/МенеджерПолученияПакетов.os")
diff --git "a/src/cmd/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260Opm_Install.os" "b/src/cmd/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260Opm_Install.os"
index 14ec48d..5f589c8 100644
--- "a/src/cmd/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260Opm_Install.os"
+++ "b/src/cmd/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260Opm_Install.os"
@@ -6,6 +6,7 @@
КомандаПриложения.Опция("a all", Ложь, "Установить все пакеты, зарегистрированные в хабе");
КомандаПриложения.Опция("f file", "", "Указать файл из которого нужно установить пакет. Поддерживает указание маски файла для пакетной установки");
КомандаПриложения.Опция("l local", Ложь, "Установить пакеты в локальный каталог oscript_modules");
+ КомандаПриложения.Опция("dev", Ложь, "Признак установки пакетов для разработки");
КомандаПриложения.Опция("s skip-install-deps", Ложь, "признак пропуска установки зависимых пакетов");
КомандаПриложения.Опция("skip-create-app", Ложь, "признак отключения создания файла запуска");
КомандаПриложения.Опция("d dest", "", "Переопределить стандартный каталог в который устанавливаются пакеты (вместо oscript_modules)");
@@ -31,6 +32,7 @@
Процедура ВыполнитьКоманду(Знач КомандаПриложения) Экспорт
УстановкаВЛокальныйКаталог = КомандаПриложения.ЗначениеОпции("local");
+ УстановкаПакетовРазработчика = КомандаПриложения.ЗначениеОпции("dev");
УстановкаВсехПакетов = КомандаПриложения.ЗначениеОпции("all");
КаталогУстановки = КомандаПриложения.ЗначениеОпции("dest");
ФайлПакетаУстановки = КомандаПриложения.ЗначениеОпции("file");
@@ -58,6 +60,7 @@
КонецЕсли;
Лог.Отладка("УстановкаВЛокальныйКаталог: %1", УстановкаВЛокальныйКаталог);
+ Лог.Отладка("УстановкаПакетовРазработчика: %1", УстановкаПакетовРазработчика);
Лог.Отладка("УстановкаВсехПакетов: %1", УстановкаВсехПакетов);
Лог.Отладка("КаталогУстановки: %1", КаталогУстановки);
Лог.Отладка("ФайлПакетаУстановки: %1", ФайлПакетаУстановки);
@@ -67,6 +70,7 @@
НастройкаУстановки = РаботаСПакетами.ПолучитьНастройкуУстановки();
НастройкаУстановки.УстанавливатьЗависимости = НеобходимоУстановитьЗависимости;
+ НастройкаУстановки.УстанавливатьЗависимостиРазработчика = УстановкаПакетовРазработчика;
НастройкаУстановки.СоздаватьФайлыЗапуска = СоздаватьФайлыЗапуска;
НастройкаУстановки.ИмяСервера = ИмяСервера;
diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\270\320\237\320\260\320\272\320\265\321\202\320\276\320\262.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\270\320\237\320\260\320\272\320\265\321\202\320\276\320\262.os"
index 1a895c5..85c872e 100644
--- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\270\320\237\320\260\320\272\320\265\321\202\320\276\320\262.os"
+++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\270\320\237\320\260\320\272\320\265\321\202\320\276\320\262.os"
@@ -15,6 +15,7 @@
Перем ИмяСервера;
Перем УстанавливатьЗависимости;
+Перем УстанавливатьЗависимостиРазработчика;
Перем СоздаватьФайлыЗапуска;
Процедура ПриСозданииОбъекта(Знач ВходящийРежимУстановкиПакетов = Неопределено, Знач ВходящийКаталогУстановки = Неопределено, Знач ВходящийКаталогУстановкиЗависимостей = Неопределено, Знач ВходящийИмяСервера = "")
@@ -52,6 +53,7 @@
КешУстановленныхПакетов = Новый Соответствие;
УстанавливатьЗависимости = Истина;
+ УстанавливатьЗависимостиРазработчика = Ложь;
СоздаватьФайлыЗапуска = Истина;
ИмяСервера = ВходящийИмяСервера;
КонецПроцедуры
@@ -60,6 +62,10 @@
УстанавливатьЗависимости = ПУстанавливатьЗависимости;
КонецПроцедуры
+Процедура УстанавливатьЗависимостиРазработчика(Знач ПУстанавливатьЗависимостиРазработчика) Экспорт
+ УстанавливатьЗависимостиРазработчика = ПУстанавливатьЗависимостиРазработчика;
+КонецПроцедуры
+
Процедура СоздаватьФайлыЗапуска(Знач ПСоздаватьФайлыЗапуска) Экспорт
СоздаватьФайлыЗапуска = ПСоздаватьФайлыЗапуска;
КонецПроцедуры
@@ -95,9 +101,19 @@
КонецПроцедуры
-Процедура УстановитьПакетПоОписанию(Знач ОписаниеПакета) Экспорт
+Процедура УстановитьПакетПоОписанию(Знач ЗависимостьПакета) Экспорт
- УстановитьПакетПоИмениИВерсии(ОписаниеПакета.ИмяПакета, ОписаниеПакета.МинимальнаяВерсия, Истина);
+ Если ЗависимостьПакета.ДляРазработки Тогда
+ Если УстанавливатьЗависимостиРазработчика Тогда
+ Лог.Информация("<%1> отмечена как зависимость для разработчика. Устанавливаем.", ЗависимостьПакета.ИмяПакета);
+ Иначе
+ Лог.Информация("<%1> отмечена как зависимость для разработчика, " +
+ "но установка зависимостей для разработчика не активирована. Пропускаем.", ЗависимостьПакета.ИмяПакета);
+ Возврат;
+ КонецЕсли;
+ КонецЕсли;
+
+ УстановитьПакетПоИмениИВерсии(ЗависимостьПакета.ИмяПакета, ЗависимостьПакета.МинимальнаяВерсия, Истина);
КонецПроцедуры
diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\277\320\270\321\201\320\260\320\275\320\270\320\265\320\237\320\260\320\272\320\265\321\202\320\260.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\277\320\270\321\201\320\260\320\275\320\270\320\265\320\237\320\260\320\272\320\265\321\202\320\260.os"
index 9e6f6d6..0c69b83 100644
--- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\277\320\270\321\201\320\260\320\275\320\270\320\265\320\237\320\260\320\272\320\265\321\202\320\260.os"
+++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\277\320\270\321\201\320\260\320\275\320\270\320\265\320\237\320\260\320\272\320\265\321\202\320\260.os"
@@ -45,6 +45,11 @@
Возврат ЭтотОбъект;
КонецФункции
+Функция ВерсияМанифеста(Знач Параметр) Экспорт
+ УстановитьСвойствоПакета("ВерсияМанифеста", Параметр);
+ Возврат ЭтотОбъект;
+КонецФункции
+
Функция ТочкаВхода(Знач Параметр) Экспорт
УстановитьСвойствоПакета("ТочкаВхода", Параметр);
Возврат ЭтотОбъект;
@@ -81,10 +86,35 @@
Функция ЗависитОт(Знач ИмяПакета, Знач МинимальнаяВерсия = Неопределено, Знач МаксимальнаяВерсия = Неопределено) Экспорт
- ТекЗависимость = Зависимость(ИмяПакета);
- Если ТекЗависимость = Неопределено Тогда
+ Зависимость = Зависимость(ИмяПакета);
+ Если Зависимость = Неопределено Тогда
+ Зависимость = мЗависимости.Добавить();
+ Зависимость.ИмяПакета = ИмяПакета;
+ КонецЕсли;
+
+ Зависимость.ДляРазработки = Ложь;
+
+ Если МинимальнаяВерсия = Неопределено Тогда
+ Возврат ЭтотОбъект;
+ КонецЕсли;
+
+ Зависимость.МинимальнаяВерсия = МинимальнаяВерсия;
+ Зависимость.МаксимальнаяВерсия = МаксимальнаяВерсия;
+
+ Возврат ЭтотОбъект;
+
+КонецФункции
+
+Функция РазработкаЗависитОт(
+ Знач ИмяПакета,
+ Знач МинимальнаяВерсия = Неопределено,
+ Знач МаксимальнаяВерсия = Неопределено) Экспорт
+
+ Зависимость = Зависимость(ИмяПакета);
+ Если Зависимость = Неопределено Тогда
Зависимость = мЗависимости.Добавить();
Зависимость.ИмяПакета = ИмяПакета;
+ Зависимость.ДляРазработки = Истина;
КонецЕсли;
Если МинимальнаяВерсия = Неопределено Тогда
@@ -195,6 +225,7 @@
мЗависимости = Новый ТаблицаЗначений;
мЗависимости.Колонки.Добавить("ИмяПакета");
+ мЗависимости.Колонки.Добавить("ДляРазработки", Новый ОписаниеТипов("Булево"));
мЗависимости.Колонки.Добавить("МинимальнаяВерсия");
мЗависимости.Колонки.Добавить("МаксимальнаяВерсия");
diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\261\320\276\321\200\321\211\320\270\320\272\320\237\320\260\320\272\320\265\321\202\320\260.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\261\320\276\321\200\321\211\320\270\320\272\320\237\320\260\320\272\320\265\321\202\320\260.os"
index 9756dad..f14952a 100644
--- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\261\320\276\321\200\321\211\320\270\320\272\320\237\320\260\320\272\320\265\321\202\320\260.os"
+++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\261\320\276\321\200\321\211\320\270\320\272\320\237\320\260\320\272\320\265\321\202\320\260.os"
@@ -36,6 +36,7 @@
УстановитьТекущийКаталог(РабочийКаталог);
УточнитьФайлМанифеста(ФайлМанифеста);
Манифест = ПрочитатьМанифест(ФайлМанифеста);
+ РаботаСОписаниемПакета.ПроверитьВерсиюМанифеста(Манифест);
ВызватьСобытиеПередСборкой();
СобратьПакетВКаталогеСборки(Манифест, ВыходнойКаталог);
УстановитьТекущийКаталог(ТекущийРабКаталог);
diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205\320\237\320\260\320\272\320\265\321\202\320\260.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205\320\237\320\260\320\272\320\265\321\202\320\260.os"
index 5c59076..7f07fd2 100644
--- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205\320\237\320\260\320\272\320\265\321\202\320\260.os"
+++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205\320\237\320\260\320\272\320\265\321\202\320\260.os"
@@ -44,6 +44,7 @@
СоответствиеИменСвойств.Вставить("Описание" , "description");
СоответствиеИменСвойств.Вставить("АдресАвтора", "author-email");
СоответствиеИменСвойств.Вставить("ВерсияСреды", "engine-version");
+ СоответствиеИменСвойств.Вставить("ВерсияМанифеста", "manifest-version");
СоответствиеИменСвойств.Вставить("Задачи", "tasks");
Возврат СоответствиеИменСвойств;
@@ -88,6 +89,7 @@
Для Каждого Зависимость Из Зависимости Цикл
Запись.ЗаписатьНачалоЭлемента(ИменаКоллекцийПакета().Зависимости);
Запись.ЗаписатьАтрибут("name", Зависимость.ИмяПакета);
+ Запись.ЗаписатьАтрибут("dev", Формат(Зависимость.ДляРазработки, "БЛ=false; БИ=true"));
Если Не ПустаяСтрока(Зависимость.МинимальнаяВерсия) Тогда
Запись.ЗаписатьАтрибут("version", Зависимость.МинимальнаяВерсия);
КонецЕсли;
@@ -235,10 +237,21 @@
МинимальнаяВерсия = ЧтениеXML.ПолучитьАтрибут("version");
МаксимальнаяВерсия = ЧтениеXML.ПолучитьАтрибут("version-max");
-
- Лог.Отладка("Добавляем зависимость " + ИмяЗависимости + " " + МинимальнаяВерсия + " " + МаксимальнаяВерсия);
- ОписаниеПакета.ЗависитОт(ИмяЗависимости, МинимальнаяВерсия, МаксимальнаяВерсия);
-
+ ДляРазработки = ЧтениеXML.ПолучитьАтрибут("dev");
+
+ Лог.Отладка(
+ "Добавляем зависимость %1 %2 %3 %4",
+ ИмяЗависимости,
+ МинимальнаяВерсия,
+ МаксимальнаяВерсия,
+ ДляРазработки
+ );
+
+ Если ДляРазработки = "true" Тогда
+ ОписаниеПакета.РазработкаЗависитОт(ИмяЗависимости, МинимальнаяВерсия, МаксимальнаяВерсия);
+ Иначе
+ ОписаниеПакета.ЗависитОт(ИмяЗависимости, МинимальнаяВерсия, МаксимальнаяВерсия);
+ КонецЕсли;
ЧтениеXML.Прочитать();
КонецПроцедуры
diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\237\320\260\320\272\320\265\321\202\320\260.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\237\320\260\320\272\320\265\321\202\320\260.os"
index f4da861..434d984 100644
--- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\237\320\260\320\272\320\265\321\202\320\260.os"
+++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\237\320\260\320\272\320\265\321\202\320\260.os"
@@ -40,7 +40,8 @@
ПутьУстановки = ОбъектКаталогУстановки.ПолноеИмя;
Лог.Информация("Устанавливаю пакет " + ИмяПакета);
- ПроверитьВерсиюСреды(Метаданные);
+ РаботаСОписаниемПакета.ПроверитьВерсиюМанифеста(Метаданные);
+ РаботаСОписаниемПакета.ПроверитьВерсиюСреды(Метаданные);
Если мЗависимостиВРаботе[ИмяПакета] = "ВРаботе" Тогда
ВызватьИсключение "Циклическая зависимость по пакету " + ИмяПакета;
КонецЕсли;
@@ -91,34 +92,6 @@
СоздаватьФайлЗапуска = ПСоздаватьФайлЗапуска;
КонецПроцедуры
-Процедура ПроверитьВерсиюСреды(Манифест)
-
- Свойства = Манифест.Свойства();
- Если НЕ Свойства.Свойство("ВерсияСреды") Тогда
- Возврат;
- КонецЕсли;
-
- ИмяПакета = Свойства.Имя;
- ТребуемаяВерсияСреды = Свойства.ВерсияСреды;
- СистемнаяИнформация = Новый СистемнаяИнформация;
- ВерсияСреды = СистемнаяИнформация.Версия;
- Лог.Отладка("ПроверитьВерсиюСреды: Перед вызовом СравнитьВерсии(ЭтаВерсия = <%1>, БольшеЧемВерсия = <%2>)", ТребуемаяВерсияСреды, ВерсияСреды);
- Если РаботаСВерсиями.СравнитьВерсии(ТребуемаяВерсияСреды, ВерсияСреды) > 0 Тогда
- ТекстСообщения = СтрШаблон(
- "Ошибка установки пакета <%1>: Обнаружена устаревшая версия движка OneScript.
- |Требуемая версия: %2
- |Текущая версия: %3
- |Обновите OneScript перед установкой пакета",
- ИмяПакета,
- ТребуемаяВерсияСреды,
- ВерсияСреды
- );
-
- ВызватьИсключение ТекстСообщения;
- КонецЕсли;
-
-КонецПроцедуры
-
Процедура УстановитьЦелевойКаталог(Знач ЦелевойКаталогУстановки) Экспорт
Лог.Отладка("Каталог установки пакета '%1'", ЦелевойКаталогУстановки);
ФС.ОбеспечитьКаталог(ЦелевойКаталогУстановки);
diff --git "a/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\275\321\201\321\202\320\260\320\275\321\202\321\213Opm.os" "b/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\275\321\201\321\202\320\260\320\275\321\202\321\213Opm.os"
index 7ebb0ac..517fd81 100644
--- "a/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\275\321\201\321\202\320\260\320\275\321\202\321\213Opm.os"
+++ "b/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\275\321\201\321\202\320\260\320\275\321\202\321\213Opm.os"
@@ -24,5 +24,5 @@
ПутьВЗапасномХранилище = "/download/";
ЛокальныйКаталогУстановкиПакетов = "oscript_modules";
ИмяЛога = "oscript.app.opm";
-ВерсияПродукта = "0.16.3";
+ВерсияПродукта = "1.0.0";
ИмяФайлаНастроек = "opm.cfg";
diff --git "a/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\236\320\277\320\270\321\201\320\260\320\275\320\270\320\265\320\274\320\237\320\260\320\272\320\265\321\202\320\260.os" "b/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\236\320\277\320\270\321\201\320\260\320\275\320\270\320\265\320\274\320\237\320\260\320\272\320\265\321\202\320\260.os"
index f1e3d61..e1a4101 100644
--- "a/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\236\320\277\320\270\321\201\320\260\320\275\320\270\320\265\320\274\320\237\320\260\320\272\320\265\321\202\320\260.os"
+++ "b/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\236\320\277\320\270\321\201\320\260\320\275\320\270\320\265\320\274\320\237\320\260\320\272\320\265\321\202\320\260.os"
@@ -1,3 +1,5 @@
+Перем Лог;
+
Функция ПрочитатьОписаниеПакета() Экспорт
Описание = Новый ОписаниеПакета();
@@ -12,4 +14,65 @@
Возврат Описание;
-КонецФункции
\ No newline at end of file
+КонецФункции
+
+Процедура ПроверитьВерсиюМанифеста(Манифест) Экспорт
+
+ Свойства = Манифест.Свойства();
+ Если НЕ Свойства.Свойство("ВерсияМанифеста") Тогда
+ Возврат;
+ КонецЕсли;
+
+ ИмяПакета = Свойства.Имя;
+ ТребуемаяВерсияМанифеста = Свойства.ВерсияМанифеста;
+ ТекущаяВерсияМанифеста = КонстантыOpm.ВерсияПродукта;
+ Лог.Отладка(
+ "ПроверитьВерсиюМанифеста: Перед вызовом СравнитьВерсии(ЭтаВерсия = <%1>, БольшеЧемВерсия = <%2>)",
+ ТребуемаяВерсияМанифеста,
+ ТекущаяВерсияМанифеста
+ );
+ Если РаботаСВерсиями.СравнитьВерсии(ТребуемаяВерсияМанифеста, ТекущаяВерсияМанифеста) > 0 Тогда
+ ТекстСообщения = СтрШаблон(
+ "Ошибка установки пакета <%1>: Обнаружена устаревшая версия opm.
+ |Требуемая версия: %2
+ |Текущая версия: %3
+ |Обновите opm перед установкой пакета",
+ ИмяПакета,
+ ТребуемаяВерсияМанифеста,
+ ТекущаяВерсияМанифеста
+ );
+
+ ВызватьИсключение ТекстСообщения;
+ КонецЕсли;
+
+КонецПроцедуры
+
+Процедура ПроверитьВерсиюСреды(Манифест) Экспорт
+
+ Свойства = Манифест.Свойства();
+ Если НЕ Свойства.Свойство("ВерсияСреды") Тогда
+ Возврат;
+ КонецЕсли;
+
+ ИмяПакета = Свойства.Имя;
+ ТребуемаяВерсияСреды = Свойства.ВерсияСреды;
+ СистемнаяИнформация = Новый СистемнаяИнформация;
+ ВерсияСреды = СистемнаяИнформация.Версия;
+ Лог.Отладка("ПроверитьВерсиюСреды: Перед вызовом СравнитьВерсии(ЭтаВерсия = <%1>, БольшеЧемВерсия = <%2>)", ТребуемаяВерсияСреды, ВерсияСреды);
+ Если РаботаСВерсиями.СравнитьВерсии(ТребуемаяВерсияСреды, ВерсияСреды) > 0 Тогда
+ ТекстСообщения = СтрШаблон(
+ "Ошибка установки пакета <%1>: Обнаружена устаревшая версия движка OneScript.
+ |Требуемая версия: %2
+ |Текущая версия: %3
+ |Обновите OneScript перед установкой пакета",
+ ИмяПакета,
+ ТребуемаяВерсияСреды,
+ ВерсияСреды
+ );
+
+ ВызватьИсключение ТекстСообщения;
+ КонецЕсли;
+
+КонецПроцедуры
+
+Лог = Логирование.ПолучитьЛог("oscript.app.opm");
diff --git "a/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\237\320\260\320\272\320\265\321\202\320\260\320\274\320\270.os" "b/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\237\320\260\320\272\320\265\321\202\320\260\320\274\320\270.os"
index a312e70..c7797f5 100644
--- "a/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\237\320\260\320\272\320\265\321\202\320\260\320\274\320\270.os"
+++ "b/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\237\320\260\320\272\320\265\321\202\320\260\320\274\320\270.os"
@@ -57,6 +57,7 @@
Настройка = Новый Структура();
Настройка.Вставить("УстанавливатьЗависимости", Истина);
+ Настройка.Вставить("УстанавливатьЗависимостиРазработчика", Ложь);
Настройка.Вставить("СоздаватьФайлыЗапуска", Истина);
Настройка.Вставить("ИмяСервера", "");
@@ -80,6 +81,7 @@
МенеджерУстановки = Новый МенеджерУстановкиПакетов(РежимУстановки, ЦелевойКаталог, , НастройкаУстановки.ИмяСервера);
МенеджерУстановки.УстанавливатьЗависимости(НастройкаУстановки.УстанавливатьЗависимости);
МенеджерУстановки.СоздаватьФайлыЗапуска(НастройкаУстановки.СоздаватьФайлыЗапуска);
+ МенеджерУстановки.УстанавливатьЗависимостиРазработчика(НастройкаУстановки.УстанавливатьЗависимостиРазработчика);
МенеджерУстановки.УстановитьПакетПоИмениИВерсии(ИмяВерсияПакета.ИмяПакета, ИмяВерсияПакета.Версия, ЭтоЗависимость);
КонецПроцедуры
@@ -94,40 +96,12 @@
МенеджерУстановки = Новый МенеджерУстановкиПакетов(РежимУстановки, ЦелевойКаталог, , НастройкаУстановки.ИмяСервера);
МенеджерУстановки.УстанавливатьЗависимости(НастройкаУстановки.УстанавливатьЗависимости);
+ МенеджерУстановки.УстанавливатьЗависимостиРазработчика(НастройкаУстановки.УстанавливатьЗависимостиРазработчика);
МенеджерУстановки.СоздаватьФайлыЗапуска(НастройкаУстановки.СоздаватьФайлыЗапуска);
МенеджерУстановки.УстановитьПакетИзАрхива(ИмяФайлаПакета);
КонецПроцедуры
-Процедура ПроверитьВерсиюСреды(Манифест)
-
- Свойства = Манифест.Свойства();
- Если НЕ Свойства.Свойство("ВерсияСреды") Тогда
- Возврат;
- КонецЕсли;
-
- ИмяПакета = Свойства.Имя;
- ТребуемаяВерсияСреды = Свойства.ВерсияСреды;
- СистемнаяИнформация = Новый СистемнаяИнформация;
- ВерсияСреды = СистемнаяИнформация.Версия;
- Лог.Отладка("ПроверитьВерсиюСреды: Перед вызовом СравнитьВерсии(ЭтаВерсия = <%1>, БольшеЧемВерсия = <%2>)", ТребуемаяВерсияСреды, ВерсияСреды);
- Если РаботаСВерсиями.СравнитьВерсии(ТребуемаяВерсияСреды, ВерсияСреды) > 0 Тогда
- ТекстСообщения = СтрШаблон(
- "Ошибка установки пакета <%1>: Обнаружена устаревшая версия движка OneScript.
- |Требуемая версия: %2
- |Текущая версия: %3
- |Обновите OneScript перед установкой пакета",
- ИмяПакета,
- ТребуемаяВерсияСреды,
- ВерсияСреды
- );
-
- ВызватьИсключение ТекстСообщения;
- КонецЕсли;
-
-КонецПроцедуры
-
-
Процедура УстановитьВсеПакетыИзОблака(Знач РежимУстановки, Знач ЦелевойКаталог = Неопределено,
Знач НастройкаУстановки = Неопределено) Экспорт
@@ -150,13 +124,14 @@
ОписаниеПакета = РаботаСОписаниемПакета.ПрочитатьОписаниеПакета();
- ПроверитьВерсиюСреды(ОписаниеПакета);
+ РаботаСОписаниемПакета.ПроверитьВерсиюСреды(ОписаниеПакета);
Если НастройкаУстановки = Неопределено Тогда
НастройкаУстановки = ПолучитьНастройкуУстановки();
КонецЕсли;
МенеджерУстановки = Новый МенеджерУстановкиПакетов(РежимУстановки, , , НастройкаУстановки.ИмяСервера);
+ МенеджерУстановки.УстанавливатьЗависимостиРазработчика(НастройкаУстановки.УстанавливатьЗависимостиРазработчика);
МенеджерУстановки.СоздаватьФайлыЗапуска(НастройкаУстановки.СоздаватьФайлыЗапуска);
МенеджерУстановки.РазрешитьЗависимостиПакета(ОписаниеПакета);
diff --git a/tests/mft-serializer-test.os b/tests/mft-serializer-test.os
index d707a21..aaca32c 100644
--- a/tests/mft-serializer-test.os
+++ b/tests/mft-serializer-test.os
@@ -31,10 +31,13 @@
.Автор("Я")
.Версия("1.0.5")
.ВерсияСреды("1.0")
+ .ВерсияМанифеста("1.0")
.Описание("Это пакет для тестирования")
.АдресАвтора("mail@server.com")
.ЗависитОт("asserts")
.ЗависитОт("cmdline",">=2.1","<3.0")
+ .РазработкаЗависитОт("logos")
+ .Задачи("tasks")
.ВключитьФайл("src")
.ВключитьФайл("tests")
.ОпределяетМодуль("Модуль1", "src/m1.os")
@@ -60,7 +63,7 @@
ЗаписатьМанифест(Запись, СоздатьТестовыйМанифест());
- Результат = СтрЗаменить(Запись.Закрыть(), Символы.ВК+Символы.ПС, Символы.ПС);
+ Результат = СтрЗаменить(Запись.Закрыть(), Символы.ВК + Символы.ПС, Символы.ПС);
Результат = СтрЗаменить(Результат, " />", "/>");
Эталон =
@@ -70,10 +73,13 @@
| Я
| 1.0.5
| 1.0
+ | 1.0
| Это пакет для тестирования
| mail@server.com
- |
- |
+ | tasks
+ |
+ |
+ |
| src/app1.os
| src/app2.os
| src
@@ -108,10 +114,13 @@
| Я
| 1.0.5
| 1.0
+ | 1.0
| Это пакет для тестирования
| mail@server.com
- |
- |
+ | tasks
+ |
+ |
+ |
| src/app1.os
| src/app2.os
|";
diff --git a/tests/packagedef-test.os b/tests/packagedef-test.os
index e2687a6..a95f900 100644
--- a/tests/packagedef-test.os
+++ b/tests/packagedef-test.os
@@ -45,8 +45,10 @@
.Автор("Я")
.Версия("1.0.5")
.ВерсияСреды("1.0")
+ .ВерсияМанифеста("1.0")
.Описание("Это пакет для тестирования")
- .АдресАвтора("mail@server.com");
+ .АдресАвтора("mail@server.com")
+ ;
Свойства = Описание.Свойства();
@@ -54,6 +56,7 @@
Ожидаем.Что(Свойства.Автор).Равно("Я");
Ожидаем.Что(Свойства.Версия).Равно("1.0.5");
Ожидаем.Что(Свойства.ВерсияСреды).Равно("1.0");
+ Ожидаем.Что(Свойства.ВерсияМанифеста).Равно("1.0");
Ожидаем.Что(Свойства.Описание).Равно("Это пакет для тестирования");
Ожидаем.Что(Свойства.АдресАвтора).Равно("mail@server.com");