Skip to content

Commit 2bb7b18

Browse files
authored
Merge pull request #120 from khorevaa/fix/fix-package-name
Исправление ошибки #119
2 parents 2883ef5 + 9128597 commit 2bb7b18

File tree

4 files changed

+60
-6
lines changed

4 files changed

+60
-6
lines changed

.travis.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ before_install:
1616
- wget -O os.deb http://oscript.io/downloads/night-build/deb
1717
- sudo dpkg -i os.deb; sudo apt install -f
1818
- oscript
19+
- sudo opm install 1testrunner
20+
- sudo opm install 1bdd
1921

2022
install:
2123
- sudo oscript /usr/share/oscript/lib/opm/src/opm.os install -l

src/core/Классы/МенеджерПолученияПакетов.os

Lines changed: 45 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
КонецЕсли;
2121

22-
ИмяПакета = НРег(ИмяПакета);
22+
ИмяПакета = ОпределитьИмяАрхива(ИмяПакета);
2323

2424
Если ВерсияПакета <> Неопределено Тогда
2525
ФайлПакета = ИмяПакета + "-" + ВерсияПакета + ".ospx";
@@ -97,6 +97,31 @@
9797

9898
КонецФункции
9999

100+
// Функция по имени пакета определяет имя архива в хабе
101+
// https://github.com/oscript-library/opm/issues/50
102+
// Имена файлов в хабе регистрозависимы, однако имена пакетов по обыкновению регистронезависимы
103+
Функция ОпределитьИмяАрхива(Знач ИмяПакета)
104+
105+
Если ИндексДоступныхПакетов.Получить(ИмяПакета) = Неопределено Тогда
106+
107+
Для Каждого мПакет Из ИндексДоступныхПакетов Цикл
108+
109+
// Проводим регистронезависимое сравнение имён
110+
Если нрег(мПакет.Ключ) = нрег(ИмяПакета) Тогда
111+
112+
// и возвращаем ровно то имя, которое хранится в хабе (с учётом регистра)
113+
Возврат мПакет.Ключ;
114+
115+
КонецЕсли;
116+
117+
КонецЦикла;
118+
119+
КонецЕсли;
120+
121+
Возврат ИмяПакета;
122+
123+
КонецФункции
124+
100125
Процедура Инициализировать()
101126

102127
Лог.Отладка("Менеджер получения пакетов инициализация - НАЧАЛО");
@@ -115,9 +140,25 @@
115140

116141
Функция ПакетДоступен(Знач ИмяПакета) Экспорт
117142

118-
Лог.Отладка("Ищю пакет <%1> в кеше доступных пакетов", ИмяПакета);
119-
120-
Возврат ИндексДоступныхПакетов[НРег(ИмяПакета)] = Истина;
143+
Если ИндексДоступныхПакетов.Получить(ИмяПакета) = Неопределено Тогда
144+
145+
Для Каждого мПакет Из ИндексДоступныхПакетов Цикл
146+
147+
// Проводим регистронезависимое сравнение имён
148+
Если нрег(мПакет.Ключ) = нрег(ИмяПакета) Тогда
149+
150+
// и возвращаем ровно то имя, которое хранится в хабе (с учётом регистра)
151+
Возврат Истина;
152+
153+
КонецЕсли;
154+
155+
КонецЦикла;
156+
157+
Иначе
158+
Возврат Истина;
159+
КонецЕсли;
160+
161+
Возврат Ложь;
121162

122163
КонецФункции
123164

tests/packagelist.os

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
СписокТестов = Новый Массив;
1111

1212
СписокТестов.Добавить("ТестДолжен_ПолучитьПакетыХаба");
13-
13+
СписокТестов.Добавить("ТестДолжен_РегистроНезависимостьПакетовХаба");
14+
1415
Возврат СписокТестов;
1516

1617
КонецФункции
@@ -28,3 +29,13 @@
2829

2930

3031
КонецФункции
32+
33+
Функция ТестДолжен_РегистроНезависимостьПакетовХаба() Экспорт
34+
35+
МенеджерПолучения = Новый МенеджерПолученияПакетов();
36+
СписокПакетовХаба = МенеджерПолучения.ПолучитьДоступныеПакеты();
37+
38+
Ожидаем.Что(СписокПакетовХаба.Количество()).Больше(1);
39+
Ожидаем.Что(СписокПакетовХаба.Получить("ParserFileV8i")).Равно(Истина);
40+
41+
КонецФункции

travis.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ set -e
33

44
opm run coverage
55

6-
temp=`cat src/Модули/КонстантыOpm.os | grep "ВерсияПродукта = " | sed 's|[^"]*"||' | sed -r 's/".+//'`
6+
temp=`cat src/core/Модули/КонстантыOpm.os | grep "ВерсияПродукта = " | sed 's|[^"]*"||' | sed -r 's/".+//'`
77
version=${temp##*|}
88

99
if [ "$TRAVIS_SECURE_ENV_VARS" == "true" ]; then

0 commit comments

Comments
 (0)