|
111 | 111 |
|
112 | 112 | КонецПроцедуры
|
113 | 113 |
|
114 |
| -Процедура УстановитьПакетПоОписанию(Знач ЗависимостьПакета) Экспорт |
| 114 | +Процедура УстановитьПакетПоОписанию(Знач ЗависимостьПакета, Знач УровеньЗависимости = 0) Экспорт |
| 115 | + |
| 116 | + Если УровеньЗависимости < 0 Тогда |
| 117 | + ВызватьИсключение "УровеньЗависимости не может быть меньше нуля"; |
| 118 | + КонецЕсли; |
115 | 119 |
|
116 | 120 | Если ЗависимостьПакета.ДляРазработки Тогда
|
117 |
| - Если УстанавливатьЗависимостиРазработчика Тогда |
| 121 | + // Зависимости разработчика устанавливаются только на первом уровне (УровеньЗависимости = 0) |
| 122 | + Если УстанавливатьЗависимостиРазработчика И УровеньЗависимости = 0 Тогда |
118 | 123 | Лог.Отладка("<%1> отмечена как зависимость для разработчика. Устанавливаем.", ЗависимостьПакета.ИмяПакета);
|
119 | 124 | Иначе
|
120 |
| - Лог.Отладка("<%1> отмечена как зависимость для разработчика, " + |
121 |
| - "но установка зависимостей для разработчика не активирована. Пропускаем.", ЗависимостьПакета.ИмяПакета); |
| 125 | + Если УровеньЗависимости > 0 Тогда |
| 126 | + Лог.Отладка("<%1> отмечена как зависимость для разработчика, " + |
| 127 | + "но это транзитивная зависимость (уровень %2). Пропускаем.", ЗависимостьПакета.ИмяПакета, УровеньЗависимости); |
| 128 | + Иначе |
| 129 | + Лог.Отладка("<%1> отмечена как зависимость для разработчика, " + |
| 130 | + "но установка зависимостей для разработчика не активирована. Пропускаем.", ЗависимостьПакета.ИмяПакета); |
| 131 | + КонецЕсли; |
122 | 132 | Возврат;
|
123 | 133 | КонецЕсли;
|
124 | 134 | КонецЕсли;
|
125 | 135 |
|
126 |
| - УстановитьПакетПоИмениИВерсии(ЗависимостьПакета.ИмяПакета, ЗависимостьПакета.МинимальнаяВерсия, Истина); |
| 136 | + УстановитьПакетПоИмениИВерсии(ЗависимостьПакета.ИмяПакета, ЗависимостьПакета.МинимальнаяВерсия, Истина, УровеньЗависимости); |
127 | 137 |
|
128 | 138 | КонецПроцедуры
|
129 | 139 |
|
130 |
| -Процедура УстановитьПакетИзАрхива(Знач ФайлПакета, Знач ЭтоЗависимыйПакет = Ложь) Экспорт |
| 140 | +Процедура УстановитьПакетИзАрхива(Знач ФайлПакета, Знач ЭтоЗависимыйПакет = Ложь, Знач УровеньЗависимости = 0) Экспорт |
| 141 | + |
| 142 | + Если УровеньЗависимости < 0 Тогда |
| 143 | + ВызватьИсключение "УровеньЗависимости не может быть меньше нуля"; |
| 144 | + КонецЕсли; |
131 | 145 |
|
132 | 146 | КаталогУстановки = ?(ЭтоЗависимыйПакет, КаталогУстановкиЗависимостей, ЦелевойКаталогУстановки);
|
133 | 147 | УстановкаПакета = Новый УстановкаПакета();
|
|
162 | 176 | Если УстанавливатьЗависимости Тогда
|
163 | 177 | // Тут надо корректно найти имя пакета в пути
|
164 | 178 | Если ФС.КаталогСуществует(ПутьККаталогуЛокальныхЗависимостей) Тогда
|
165 |
| - РазрешитьЗависимостиПакетаЛокально(МанифестПакета, ПутьККаталогуЛокальныхЗависимостей); |
| 179 | + РазрешитьЗависимостиПакетаЛокально(МанифестПакета, ПутьККаталогуЛокальныхЗависимостей, УровеньЗависимости); |
166 | 180 | Иначе
|
167 |
| - РазрешитьЗависимостиПакета(МанифестПакета); |
| 181 | + РазрешитьЗависимостиПакета(МанифестПакета, УровеньЗависимости); |
168 | 182 | КонецЕсли;
|
169 | 183 |
|
170 | 184 | КонецЕсли;
|
171 | 185 |
|
172 | 186 | КонецПроцедуры
|
173 | 187 |
|
174 |
| -Процедура УстановитьПакетПоИмениИВерсии(Знач ИмяПакета, Знач ВерсияПакета, ЗНач ЭтоЗависимыйПакет = Ложь) Экспорт |
| 188 | +Процедура УстановитьПакетПоИмениИВерсии(Знач ИмяПакета, Знач ВерсияПакета, ЗНач ЭтоЗависимыйПакет = Ложь, Знач УровеньЗависимости = 0) Экспорт |
| 189 | + |
| 190 | + Если УровеньЗависимости < 0 Тогда |
| 191 | + ВызватьИсключение "УровеньЗависимости не может быть меньше нуля"; |
| 192 | + КонецЕсли; |
175 | 193 |
|
176 | 194 | ФайлПакета = РаботаСПакетами.ПолучитьПакет(ИмяПакета, ВерсияПакета, , ИмяСервера);
|
177 |
| - УстановитьПакетИзАрхива(ФайлПакета, ЭтоЗависимыйПакет); |
| 195 | + УстановитьПакетИзАрхива(ФайлПакета, ЭтоЗависимыйПакет, УровеньЗависимости); |
178 | 196 |
|
179 | 197 | КонецПроцедуры
|
180 | 198 |
|
181 |
| -Процедура РазрешитьЗависимостиПакета(Знач Манифест) Экспорт |
| 199 | +Процедура РазрешитьЗависимостиПакета(Знач Манифест, Знач УровеньЗависимости = 0) Экспорт |
| 200 | + |
| 201 | + Если УровеньЗависимости < 0 Тогда |
| 202 | + ВызватьИсключение "УровеньЗависимости не может быть меньше нуля"; |
| 203 | + КонецЕсли; |
182 | 204 |
|
183 | 205 | Зависимости = Манифест.Зависимости();
|
184 | 206 | Если Зависимости.Количество() = 0 Тогда
|
|
197 | 219 |
|
198 | 220 | // скачать
|
199 | 221 | // определить зависимости и так по кругу
|
200 |
| - УстановитьПакетПоОписанию(Зависимость); |
| 222 | + УстановитьПакетПоОписанию(Зависимость, УровеньЗависимости + 1); |
201 | 223 | УстановленныеПакеты.Обновить();
|
202 | 224 |
|
203 | 225 | Иначе
|
|
209 | 231 |
|
210 | 232 | КонецПроцедуры
|
211 | 233 |
|
212 |
| -Процедура РазрешитьЗависимостиПакетаЛокально(Манифест, ПутьККаталогуЛокальныхЗависимостей) |
| 234 | +Процедура РазрешитьЗависимостиПакетаЛокально(Манифест, ПутьККаталогуЛокальныхЗависимостей, Знач УровеньЗависимости = 0) |
213 | 235 |
|
214 | 236 | Зависимости = Манифест.Зависимости();
|
215 | 237 | Если Зависимости.Количество() = 0 Тогда
|
|
237 | 259 |
|
238 | 260 | Иначе
|
239 | 261 |
|
240 |
| - УстановитьПакетПоОписанию(Зависимость); |
| 262 | + УстановитьПакетПоОписанию(Зависимость, УровеньЗависимости + 1); |
241 | 263 |
|
242 | 264 | КонецЕсли;
|
243 | 265 |
|
|
0 commit comments