Skip to content

Commit 719f78d

Browse files
authored
Merge pull request #253 from nixel2007/copilot/fix-7f2bd8b4-0267-494d-8959-bf8dcc349481
2 parents c447dae + a439ff3 commit 719f78d

File tree

4 files changed

+39
-17
lines changed

4 files changed

+39
-17
lines changed

features/install-file.feature

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
И я вижу в консоли вывод
2525
| Событие установки - ПередУстановкой - КаталогУстановкиПакета |
2626
| Событие установки - ПриУстановке - КаталогУстановкиПакета |
27-
| ИНФОРМАЦИЯ - Установка завершена |
27+
| Установка завершена |
2828
И Вывод команды "opm" не содержит "Внешнее исключение"
2929
И Код возврата команды "opm" равен 0
3030
И В каталоге из переменной "РабочийКаталог" создается файл или каталог "oscript_modules"

packagedef

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
Константы_ЛокальнаяВерсия = ЗагрузитьСценарий(ПутьКСценариюКонстант);
1414
ВерсияПродукта = Константы_ЛокальнаяВерсия.ВерсияПродукта;
1515
Иначе
16-
ВерсияПродукта = "1.6.1";
16+
ВерсияПродукта = "1.6.2";
1717
КонецЕсли;
1818

1919
Описание.Имя("opm")

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

Lines changed: 36 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -111,23 +111,37 @@
111111

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

114-
Процедура УстановитьПакетПоОписанию(Знач ЗависимостьПакета) Экспорт
114+
Процедура УстановитьПакетПоОписанию(Знач ЗависимостьПакета, Знач УровеньЗависимости = 0) Экспорт
115+
116+
Если УровеньЗависимости < 0 Тогда
117+
ВызватьИсключение "УровеньЗависимости не может быть меньше нуля";
118+
КонецЕсли;
115119

116120
Если ЗависимостьПакета.ДляРазработки Тогда
117-
Если УстанавливатьЗависимостиРазработчика Тогда
121+
// Зависимости разработчика устанавливаются только на первом уровне (УровеньЗависимости = 0)
122+
Если УстанавливатьЗависимостиРазработчика И УровеньЗависимости = 0 Тогда
118123
Лог.Отладка("<%1> отмечена как зависимость для разработчика. Устанавливаем.", ЗависимостьПакета.ИмяПакета);
119124
Иначе
120-
Лог.Отладка("<%1> отмечена как зависимость для разработчика, " +
121-
"но установка зависимостей для разработчика не активирована. Пропускаем.", ЗависимостьПакета.ИмяПакета);
125+
Если УровеньЗависимости > 0 Тогда
126+
Лог.Отладка("<%1> отмечена как зависимость для разработчика, " +
127+
"но это транзитивная зависимость (уровень %2). Пропускаем.", ЗависимостьПакета.ИмяПакета, УровеньЗависимости);
128+
Иначе
129+
Лог.Отладка("<%1> отмечена как зависимость для разработчика, " +
130+
"но установка зависимостей для разработчика не активирована. Пропускаем.", ЗависимостьПакета.ИмяПакета);
131+
КонецЕсли;
122132
Возврат;
123133
КонецЕсли;
124134
КонецЕсли;
125135

126-
УстановитьПакетПоИмениИВерсии(ЗависимостьПакета.ИмяПакета, ЗависимостьПакета.МинимальнаяВерсия, Истина);
136+
УстановитьПакетПоИмениИВерсии(ЗависимостьПакета.ИмяПакета, ЗависимостьПакета.МинимальнаяВерсия, Истина, УровеньЗависимости);
127137

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

130-
Процедура УстановитьПакетИзАрхива(Знач ФайлПакета, Знач ЭтоЗависимыйПакет = Ложь) Экспорт
140+
Процедура УстановитьПакетИзАрхива(Знач ФайлПакета, Знач ЭтоЗависимыйПакет = Ложь, Знач УровеньЗависимости = 0) Экспорт
141+
142+
Если УровеньЗависимости < 0 Тогда
143+
ВызватьИсключение "УровеньЗависимости не может быть меньше нуля";
144+
КонецЕсли;
131145

132146
КаталогУстановки = ?(ЭтоЗависимыйПакет, КаталогУстановкиЗависимостей, ЦелевойКаталогУстановки);
133147
УстановкаПакета = Новый УстановкаПакета();
@@ -162,23 +176,31 @@
162176
Если УстанавливатьЗависимости Тогда
163177
// Тут надо корректно найти имя пакета в пути
164178
Если ФС.КаталогСуществует(ПутьККаталогуЛокальныхЗависимостей) Тогда
165-
РазрешитьЗависимостиПакетаЛокально(МанифестПакета, ПутьККаталогуЛокальныхЗависимостей);
179+
РазрешитьЗависимостиПакетаЛокально(МанифестПакета, ПутьККаталогуЛокальныхЗависимостей, УровеньЗависимости);
166180
Иначе
167-
РазрешитьЗависимостиПакета(МанифестПакета);
181+
РазрешитьЗависимостиПакета(МанифестПакета, УровеньЗависимости);
168182
КонецЕсли;
169183

170184
КонецЕсли;
171185

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

174-
Процедура УстановитьПакетПоИмениИВерсии(Знач ИмяПакета, Знач ВерсияПакета, ЗНач ЭтоЗависимыйПакет = Ложь) Экспорт
188+
Процедура УстановитьПакетПоИмениИВерсии(Знач ИмяПакета, Знач ВерсияПакета, ЗНач ЭтоЗависимыйПакет = Ложь, Знач УровеньЗависимости = 0) Экспорт
189+
190+
Если УровеньЗависимости < 0 Тогда
191+
ВызватьИсключение "УровеньЗависимости не может быть меньше нуля";
192+
КонецЕсли;
175193

176194
ФайлПакета = РаботаСПакетами.ПолучитьПакет(ИмяПакета, ВерсияПакета, , ИмяСервера);
177-
УстановитьПакетИзАрхива(ФайлПакета, ЭтоЗависимыйПакет);
195+
УстановитьПакетИзАрхива(ФайлПакета, ЭтоЗависимыйПакет, УровеньЗависимости);
178196

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

181-
Процедура РазрешитьЗависимостиПакета(Знач Манифест) Экспорт
199+
Процедура РазрешитьЗависимостиПакета(Знач Манифест, Знач УровеньЗависимости = 0) Экспорт
200+
201+
Если УровеньЗависимости < 0 Тогда
202+
ВызватьИсключение "УровеньЗависимости не может быть меньше нуля";
203+
КонецЕсли;
182204

183205
Зависимости = Манифест.Зависимости();
184206
Если Зависимости.Количество() = 0 Тогда
@@ -197,7 +219,7 @@
197219

198220
// скачать
199221
// определить зависимости и так по кругу
200-
УстановитьПакетПоОписанию(Зависимость);
222+
УстановитьПакетПоОписанию(Зависимость, УровеньЗависимости + 1);
201223
УстановленныеПакеты.Обновить();
202224

203225
Иначе
@@ -209,7 +231,7 @@
209231

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

212-
Процедура РазрешитьЗависимостиПакетаЛокально(Манифест, ПутьККаталогуЛокальныхЗависимостей)
234+
Процедура РазрешитьЗависимостиПакетаЛокально(Манифест, ПутьККаталогуЛокальныхЗависимостей, Знач УровеньЗависимости = 0)
213235

214236
Зависимости = Манифест.Зависимости();
215237
Если Зависимости.Количество() = 0 Тогда
@@ -237,7 +259,7 @@
237259

238260
Иначе
239261

240-
УстановитьПакетПоОписанию(Зависимость);
262+
УстановитьПакетПоОписанию(Зависимость, УровеньЗависимости + 1);
241263

242264
КонецЕсли;
243265

src/core/Модули/КонстантыOpm.os

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,5 @@
2424
ПутьВЗапасномХранилище = "/download/";
2525
ЛокальныйКаталогУстановкиПакетов = "oscript_modules";
2626
ИмяЛога = "oscript.app.opm";
27-
ВерсияПродукта = "1.6.1";
27+
ВерсияПродукта = "1.6.2";
2828
ИмяФайлаНастроек = "opm.cfg";

0 commit comments

Comments
 (0)