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");