diff --git a/.gitignore b/.gitignore index b82511f..54b1b86 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ bdd-*.xml src/oscript.cfg src/cmd/oscript\.cfg +exec.log +test-reports/tests.xml 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 551c7a5..9e6f6d6 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" @@ -206,6 +206,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 87cdcfb..b800cce 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" @@ -259,10 +259,22 @@ | |"); + ЗаписьТекста.ЗаписатьСтроку("// Вызывается пакетным менеджером перед установкой пакета на клиентскую машину."); + ЗаписьТекста.ЗаписатьСтроку("// "); + ЗаписьТекста.ЗаписатьСтроку("// Параметры:"); + ЗаписьТекста.ЗаписатьСтроку("// КаталогУстановкиПакета - строка. Путь в который пакетный менеджер устанавливает текущий пакет."); + ЗаписьТекста.ЗаписатьСтроку("// ЧтениеZipФайла - ЧтениеZipФайла. Архив пакета."); + ЗаписьТекста.ЗаписатьСтроку("// "); + ЗаписьТекста.ЗаписатьСтроку("Процедура ПередУстановкой(Знач КаталогУстановкиПакета, Знач ЧтениеZipФайла) Экспорт"); + ЗаписьТекста.ЗаписатьСтроку(" // TODO: Реализуйте спец. логику перед установкой, если требуется"); + ЗаписьТекста.ЗаписатьСтроку("КонецПроцедуры"); + ЗаписьТекста.ЗаписатьСтроку(Символы.ПС); + ЗаписьТекста.ЗаписатьСтроку("// Вызывается пакетным менеджером после распаковки пакета на клиентскую машину."); ЗаписьТекста.ЗаписатьСтроку("// "); ЗаписьТекста.ЗаписатьСтроку("// Параметры:"); ЗаписьТекста.ЗаписатьСтроку("// КаталогУстановкиПакета - строка. Путь в который пакетный менеджер устанавливает текущий пакет."); + ЗаписьТекста.ЗаписатьСтроку("// СтандартнаяОбработка - Булево. Возможность отменить стандартную обработку."); ЗаписьТекста.ЗаписатьСтроку("// "); ЗаписьТекста.ЗаписатьСтроку("Процедура ПриУстановке(Знач КаталогУстановкиПакета, СтандартнаяОбработка) Экспорт"); ЗаписьТекста.ЗаписатьСтроку(" // TODO: Реализуйте спец. логику установки, если требуется"); 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 bed5ff4..df1aea1 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" @@ -137,9 +137,13 @@ Лог.Отладка("Устанавливаю файлы пакета из архива"); УдалитьУстаревшиеФайлы(ПутьУстановки); + + ОбработчикСобытий = ПолучитьОбработчикСобытий(ПутьУстановки.ПолноеИмя); + + ВызватьСобытиеПередУстановкой(ОбработчикСобытий, ПутьУстановки.ПолноеИмя, ЧтениеСодержимого); + ЧтениеСодержимого.ИзвлечьВсе(ПутьУстановки.ПолноеИмя); - ОбработчикСобытий = ПолучитьОбработчикСобытий(ПутьУстановки.ПолноеИмя); ВызватьСобытиеПриУстановке(ОбработчикСобытий, ПутьУстановки.ПолноеИмя, СтандартнаяОбработка); Исключение @@ -180,6 +184,20 @@ Возврат ОбработчикСобытий; КонецФункции +Процедура ВызватьСобытиеПередУстановкой(Знач ОбработчикСобытий, Знач Каталог, Знач ЧтениеZipФайла) + + Если ОбработчикСобытий = Неопределено Тогда + Возврат; + КонецЕсли; + + Рефлектор = Новый Рефлектор; + Если Рефлектор.МетодСуществует(ОбработчикСобытий, "ПередУстановкой") Тогда + Лог.Отладка("Вызываю событие ПередУстановкой"); + ОбработчикСобытий.ПередУстановкой(Каталог, ЧтениеZipФайла); + КонецЕсли; + +КонецПроцедуры + Процедура ВызватьСобытиеПриУстановке(Знач ОбработчикСобытий, Знач Каталог, СтандартнаяОбработка) Если ОбработчикСобытий = Неопределено Тогда