Skip to content

Commit

Permalink
Update package-loader.os
Browse files Browse the repository at this point in the history
  • Loading branch information
nixel2007 authored Oct 15, 2023
1 parent b63338b commit b8cb0e1
Showing 1 changed file with 41 additions and 1 deletion.
42 changes: 41 additions & 1 deletion package-loader.os
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
Если Осень <> Неопределено Тогда
ОбработатьКаталогКлассов(ОбъединитьПути(Путь, "src/Заготовки"), СтандартнаяОбработка, Отказ);
ОбработатьКаталогКлассов(ОбъединитьПути(Путь, "src/Классы"), СтандартнаяОбработка, Отказ);

ОбработатьКаталогМодулей(ОбъединитьПути(Путь, "src/Модули"), СтандартнаяОбработка, Отказ);

Осень.ДобавитьЗаготовкуДляАвтоИнициализации("ИнициализацияАсинх");
Иначе
ВызватьИсключение "Некорректный порядок импорта библиотек. Сначала подключите autumn";
Expand All @@ -35,6 +36,30 @@

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

Процедура ОбработатьКаталогМодулей(Знач Путь, СтандартнаяОбработка, Отказ)

КаталогМодулей = Новый Файл(Путь);

Если КаталогМодулей.Существует() Тогда
Файлы = НайтиФайлы(КаталогМодулей.ПолноеИмя, "*.os");
Для Каждого Файл Из Файлы Цикл
Вывести(СтрШаблон(" модуль (по соглашению) %1, файл %2", Файл.ИмяБезРасширения, Файл.ПолноеИмя));
СтандартнаяОбработка = Ложь;
Попытка
ДобавитьМодульЕслиРанееНеДобавляли(Файл.ПолноеИмя, Файл.ИмяБезРасширения);
Исключение
Если ВыдаватьОшибкуПриЗагрузкеУжеСуществующихКлассовМодулей Тогда
ВызватьИсключение;
КонецЕсли;
СтандартнаяОбработка = Истина;
Вывести("Предупреждение:
|" + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
КонецЦикла;
КонецЕсли;

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

Процедура ДобавитьКлассЕслиРанееНеДобавляли(ПутьФайла, ИмяКласса)
Вывести("Добавляю класс, если ранее не добавляли " + ИмяКласса);
Если ВыдаватьОшибкуПриЗагрузкеУжеСуществующихКлассовМодулей Тогда
Expand All @@ -60,6 +85,21 @@
КонецЕсли;
КонецПроцедуры

Процедура ДобавитьМодульЕслиРанееНеДобавляли(ПутьФайла, ИмяМодуля)
Вывести("Добавляю модуль, если ранее не добавляли " + ИмяМодуля);

МодульУжеЕсть = КэшМодулей.Найти(ИмяМодуля) <> Неопределено;
Если Не МодульУжеЕсть Тогда

Вывести("Добавляю модуль, т.к. он не найден - " + ИмяМодуля);
ДобавитьМодуль(ПутьФайла, ИмяМодуля);
КэшМодулей.Добавить(ИмяМодуля);
Иначе
Вывести("Пропускаю загрузку модуля " + ИмяМодуля);

КонецЕсли;
КонецПроцедуры

Процедура Вывести(Знач Сообщение)
Если ПоказатьСообщенияЗагрузки Тогда
Сообщить(Сообщение);
Expand Down

0 comments on commit b8cb0e1

Please sign in to comment.