Skip to content

Commit 6f9ded7

Browse files
Copilotnixel2007
andcommitted
Refactor dependency level tracking using parameters instead of class field
Co-authored-by: nixel2007 <1132840+nixel2007@users.noreply.github.com>
1 parent 656da40 commit 6f9ded7

File tree

1 file changed

+12
-31
lines changed

1 file changed

+12
-31
lines changed

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

Lines changed: 12 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
Перем УстанавливатьЗависимости;
1919
Перем УстанавливатьЗависимостиРазработчика;
2020
Перем СоздаватьФайлыЗапуска;
21-
Перем УровеньЗависимости;
2221

2322
// BSLLS:NumberOfOptionalParams-off
2423
Процедура ПриСозданииОбъекта(Знач ВходящийРежимУстановкиПакетов = Неопределено,
@@ -64,7 +63,6 @@
6463
УстанавливатьЗависимостиРазработчика = Ложь;
6564
СоздаватьФайлыЗапуска = Истина;
6665
ИмяСервера = ВходящийИмяСервера;
67-
УровеньЗависимости = 0;
6866
КонецПроцедуры
6967

7068
Процедура УстанавливатьЗависимости(Знач ПУстанавливатьЗависимости) Экспорт
@@ -79,10 +77,6 @@
7977
СоздаватьФайлыЗапуска = ПСоздаватьФайлыЗапуска;
8078
КонецПроцедуры
8179

82-
Процедура УстановитьУровеньЗависимости(Знач Уровень) Экспорт
83-
УровеньЗависимости = Уровень;
84-
КонецПроцедуры
85-
8680
Процедура УстановитьРежимУстановкиПакетов(Знач ЗначениеРежимУстановкиПакетов) Экспорт
8781

8882
ТекущийРежимУстановкиПакетов = ЗначениеРежимУстановкиПакетов;
@@ -117,7 +111,7 @@
117111

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

120-
Процедура УстановитьПакетПоОписанию(Знач ЗависимостьПакета) Экспорт
114+
Процедура УстановитьПакетПоОписанию(Знач ЗависимостьПакета, Знач УровеньЗависимости = 0) Экспорт
121115

122116
Если ЗависимостьПакета.ДляРазработки Тогда
123117
// Зависимости разработчика устанавливаются только на первом уровне (УровеньЗависимости = 0)
@@ -135,11 +129,11 @@
135129
КонецЕсли;
136130
КонецЕсли;
137131

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

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

142-
Процедура УстановитьПакетИзАрхива(Знач ФайлПакета, Знач ЭтоЗависимыйПакет = Ложь) Экспорт
136+
Процедура УстановитьПакетИзАрхива(Знач ФайлПакета, Знач ЭтоЗависимыйПакет = Ложь, Знач УровеньЗависимости = 0) Экспорт
143137

144138
КаталогУстановки = ?(ЭтоЗависимыйПакет, КаталогУстановкиЗависимостей, ЦелевойКаталогУстановки);
145139
УстановкаПакета = Новый УстановкаПакета();
@@ -174,36 +168,23 @@
174168
Если УстанавливатьЗависимости Тогда
175169
// Тут надо корректно найти имя пакета в пути
176170
Если ФС.КаталогСуществует(ПутьККаталогуЛокальныхЗависимостей) Тогда
177-
РазрешитьЗависимостиПакетаЛокально(МанифестПакета, ПутьККаталогуЛокальныхЗависимостей);
171+
РазрешитьЗависимостиПакетаЛокально(МанифестПакета, ПутьККаталогуЛокальныхЗависимостей, УровеньЗависимости);
178172
Иначе
179-
РазрешитьЗависимостиПакета(МанифестПакета);
173+
РазрешитьЗависимостиПакета(МанифестПакета, УровеньЗависимости);
180174
КонецЕсли;
181175

182176
КонецЕсли;
183177

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

186-
Процедура УстановитьПакетПоИмениИВерсии(Знач ИмяПакета, Знач ВерсияПакета, ЗНач ЭтоЗависимыйПакет = Ложь) Экспорт
180+
Процедура УстановитьПакетПоИмениИВерсии(Знач ИмяПакета, Знач ВерсияПакета, ЗНач ЭтоЗависимыйПакет = Ложь, Знач УровеньЗависимости = 0) Экспорт
187181

188-
Если ЭтоЗависимыйПакет Тогда
189-
// Для зависимых пакетов увеличиваем уровень зависимости
190-
НовыйМенеджер = Новый МенеджерУстановкиПакетов(ТекущийРежимУстановкиПакетов, ЦелевойКаталогУстановки, КаталогУстановкиЗависимостей, ИмяСервера);
191-
НовыйМенеджер.УстанавливатьЗависимости(УстанавливатьЗависимости);
192-
НовыйМенеджер.СоздаватьФайлыЗапуска(СоздаватьФайлыЗапуска);
193-
// Для транзитивных зависимостей отключаем установку зависимостей разработчика
194-
НовыйМенеджер.УстанавливатьЗависимостиРазработчика(Ложь);
195-
НовыйМенеджер.УстановитьУровеньЗависимости(УровеньЗависимости + 1);
196-
197-
ФайлПакета = РаботаСПакетами.ПолучитьПакет(ИмяПакета, ВерсияПакета, , ИмяСервера);
198-
НовыйМенеджер.УстановитьПакетИзАрхива(ФайлПакета, Ложь);
199-
Иначе
200-
ФайлПакета = РаботаСПакетами.ПолучитьПакет(ИмяПакета, ВерсияПакета, , ИмяСервера);
201-
УстановитьПакетИзАрхива(ФайлПакета, ЭтоЗависимыйПакет);
202-
КонецЕсли;
182+
ФайлПакета = РаботаСПакетами.ПолучитьПакет(ИмяПакета, ВерсияПакета, , ИмяСервера);
183+
УстановитьПакетИзАрхива(ФайлПакета, ЭтоЗависимыйПакет, УровеньЗависимости);
203184

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

206-
Процедура РазрешитьЗависимостиПакета(Знач Манифест) Экспорт
187+
Процедура РазрешитьЗависимостиПакета(Знач Манифест, Знач УровеньЗависимости = 0) Экспорт
207188

208189
Зависимости = Манифест.Зависимости();
209190
Если Зависимости.Количество() = 0 Тогда
@@ -222,7 +203,7 @@
222203

223204
// скачать
224205
// определить зависимости и так по кругу
225-
УстановитьПакетПоОписанию(Зависимость);
206+
УстановитьПакетПоОписанию(Зависимость, УровеньЗависимости + 1);
226207
УстановленныеПакеты.Обновить();
227208

228209
Иначе
@@ -234,7 +215,7 @@
234215

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

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

239220
Зависимости = Манифест.Зависимости();
240221
Если Зависимости.Количество() = 0 Тогда
@@ -262,7 +243,7 @@
262243

263244
Иначе
264245

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

267248
КонецЕсли;
268249

0 commit comments

Comments
 (0)