Skip to content

Commit 583bb23

Browse files
authored
Merge pull request #65 from dmpas/feature/issue-50-case
Fixes #50: Регистронезависимая установка пакета.
2 parents ce19495 + 0e6517b commit 583bb23

File tree

1 file changed

+32
-3
lines changed

1 file changed

+32
-3
lines changed

src/Классы/УстановкаПакета.os

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -205,17 +205,46 @@
205205
СкачатьИУстановитьПакет(ОписаниеПакета.ИмяПакета, ОписаниеПакета.МинимальнаяВерсия);
206206
КонецПроцедуры
207207

208+
// Функция по имени пакета определяет имя архива в хабе
209+
// https://github.com/oscript-library/opm/issues/50
210+
// Имена файлов в хабе регистрозависимы, однако имена пакетов по обыкновению регистронезависимы
211+
Функция ОпределитьИмяАрхива(Знач ИмяПакета)
212+
213+
КэшПакетовВХабе = Новый КэшПакетовХаба();
214+
ПакетыХаба = КэшПакетовВХабе.ПолучитьПакетыХаба();
215+
216+
Если ПакетыХаба.Получить(ИмяПакета) = Неопределено Тогда
217+
218+
Для Каждого мПакет Из ПакетыХаба Цикл
219+
220+
// Проводим регистронезависимое сравнение имён
221+
Если нрег(мПакет.Ключ) = нрег(ИмяПакета) Тогда
222+
223+
// и возвращаем ровно то имя, которое хранится в хабе (с учётом регистра)
224+
Возврат мПакет.Ключ;
225+
226+
КонецЕсли;
227+
228+
КонецЦикла;
229+
230+
КонецЕсли;
231+
232+
Возврат ИмяПакета;
233+
234+
КонецФункции
235+
208236
Процедура СкачатьИУстановитьПакет(Знач ИмяПакета, Знач ВерсияПакета)
209237

238+
ИмяАрхива = ОпределитьИмяАрхива(ИмяПакета);
210239
Если ВерсияПакета <> Неопределено Тогда
211-
ФайлПакета = ИмяПакета + "-" + ВерсияПакета + ".ospx";
240+
ФайлПакета = ИмяАрхива + "-" + ВерсияПакета + ".ospx";
212241
Иначе
213-
ФайлПакета = ИмяПакета + ".ospx";
242+
ФайлПакета = ИмяАрхива + ".ospx";
214243
КонецЕсли;
215244

216245
Лог.Информация("Скачиваю файл: " + ФайлПакета);
217246

218-
Ответ = Зеркала.ПолучитьРесурс(ИмяПакета + "/" + ФайлПакета);
247+
Ответ = Зеркала.ПолучитьРесурс(ИмяАрхива + "/" + ФайлПакета);
219248
Если Не Ответ = Неопределено Тогда
220249
Лог.Отладка("Файл получен");
221250
ВремФайл = ОбъединитьПути(КаталогВременныхФайлов(), ФайлПакета);

0 commit comments

Comments
 (0)