Skip to content

Commit

Permalink
Добавил специальную заглушку для правильной компиляции packagedef при…
Browse files Browse the repository at this point in the history
… первых действий при установке пакета, когда еще не извлечено никаких файлов пакет

Добавил файл packagedef первым в список включаемых файлов для ускорения поиска
Добавил пустые обработчики событий ПередУстановкой ПриУстановке
  • Loading branch information
artbear committed Sep 30, 2018
1 parent 8525c55 commit 2baf42a
Showing 1 changed file with 46 additions and 9 deletions.
55 changes: 46 additions & 9 deletions packagedef
@@ -1,4 +1,32 @@

////////////////////////////////////////////////////////////
// Описание пакета для сборки и установки
// Полную документацию см. на hub.oscript.io/packaging
//

///////////////////////////////////////////////////////////////////
// Процедуры установки пакета с клиентской машины
///////////////////////////////////////////////////////////////////

// Вызывается пакетным менеджером перед установкой пакета на клиентскую машину.
//
// Параметры:
// КаталогУстановкиПакета - строка. Путь в который пакетный менеджер устанавливает текущий пакет.
// ЧтениеZipФайла - ЧтениеZipФайла. Архив пакета.
//
Процедура ПередУстановкой(Знач КаталогУстановкиПакета, Знач ЧтениеZipФайла) Экспорт

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

// Вызывается пакетным менеджером после распаковки пакета на клиентскую машину.
//
// Параметры:
// КаталогУстановкиПакета - строка. Путь в который пакетный менеджер устанавливает текущий пакет.
//
Процедура ПриУстановке(Знач КаталогУстановкиПакета, СтандартнаяОбработка) Экспорт

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

Процедура ПередСборкой(Знач РабочийКаталог) Экспорт

КаталогМодулей = ОбъединитьПути(РабочийКаталог, "oscript_modules");
Expand All @@ -14,37 +42,46 @@

СтрокаЗапуска = СтрШаблон("%1 install -l", ИмяУтилиты);
ВыполнитьОбязательныйШаг(СтрокаЗапуска, РабочийКаталог);

СобираемаяВерсия = Описание.Свойства().Версия;
Если СобираемаяВерсия = "0.14.4" Тогда
УдалитьФайлы(ОбъединитьПути(КаталогМодулей, "gitrunner"));
СтрокаЗапуска = "oscript src/cmd/opm.os install -l";
ВыполнитьОбязательныйШаг(СтрокаЗапуска, РабочийКаталог);

// Подчищаем за 1bdd
// TODO: сделать зависимости этапа разработки
УдалитьФайлы(ОбъединитьПути(КаталогМодулей, "bin"));
УдалитьФайлы(ОбъединитьПути(КаталогМодулей, "1bdd"));

КонецЕсли;

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

Процедура ВыполнитьОбязательныйШаг(Знач СтрокаЗапуска, Знач РабочийКаталог)
Процесс = СоздатьПроцесс(СтрокаЗапуска, РабочийКаталог);
Процесс.Запустить();
Процесс.ОжидатьЗавершения();

Если Процесс.КодВозврата <> 0 Тогда
ВызватьИсключение "Ошибка сборки пакета";
КонецЕсли;
КонецПроцедуры

ПутьКСценариюКонстант = ОбъединитьПути(ТекущийСценарий().Каталог, "src/core", "Модули", "КонстантыOpm.os");
Константы_ЛокальнаяВерсия = ЗагрузитьСценарий(ПутьКСценариюКонстант);

// специальная заглушка для правильной компиляции packagedef при первых действий при установке пакета,
// когда еще не извлечено никаких файлов пакет
ФайлКонстант = Новый Файл(ПутьКСценариюКонстант);
Если ФайлКонстант.Существует() Тогда
Константы_ЛокальнаяВерсия = ЗагрузитьСценарий(ПутьКСценариюКонстант);
ВерсияПродукта = Константы_ЛокальнаяВерсия.ВерсияПродукта;
Иначе
ВерсияПродукта = "1.0.0";
КонецЕсли;

Описание.Имя("opm")
.Версия(Константы_ЛокальнаяВерсия.ВерсияПродукта)
.Версия(ВерсияПродукта)
.ВерсияСреды("1.0.19")
.ЗависитОт("fs", "0.5.0")
.ЗависитОт("asserts", "0.4.0")
Expand All @@ -54,9 +91,9 @@
.ЗависитОт("cli", "0.9.10")
.ЗависитОт("tempfiles", "0.2.2")
.ЗависитОт("gitrunner", "1.5.1")
.ВключитьФайл("packagedef")
.ВключитьФайл("src")
.ВключитьФайл("oscript_modules")
.ВключитьФайл("packagedef")
.ОпределяетКласс("КэшУстановленныхПакетов", "src/core/Классы/КэшУстановленныхПакетов.os")
.ОпределяетКласс("МенеджерПолученияПакетов", "src/core/Классы/МенеджерПолученияПакетов.os")
.ОпределяетКласс("МенеджерУстановкиПакетов", "src/core/Классы/МенеджерУстановкиПакетов.os")
Expand All @@ -71,4 +108,4 @@
.ОпределяетМодуль("РаботаСОписаниемПакета", "src/core/Модули/РаботаСОписаниемПакета.os")
.ОпределяетМодуль("РаботаСПакетами", "src/core/Модули/РаботаСПакетами.os")
.ОпределяетМодуль("РежимУстановкиПакетов", "src/core/Модули/РежимУстановкиПакетов.os")
.ИсполняемыйФайл("src/cmd/opm.os");
.ИсполняемыйФайл("src/cmd/opm.os");

0 comments on commit 2baf42a

Please sign in to comment.