|
16 | 16 |
|
17 | 17 | Процедура ПриСозданииОбъекта(Знач ВходящийРежимУстановкиПакетов = Неопределено, Знач ВходящийКаталогУстановки = Неопределено, Знач ВходящийКаталогУстановкиЗависимостей = Неопределено) |
18 | 18 |
|
19 | | - КаталогСистемныхБиблиотек = ПолучитьКаталогСистемныхБиблиотек(); |
20 | | - |
| 19 | + |
21 | 20 | Если Не ВходящийКаталогУстановки = Неопределено Тогда |
22 | 21 | УстановитьЦелевойКаталог(ВходящийКаталогУстановки); |
23 | 22 | Иначе |
| 23 | + КаталогСистемныхБиблиотек = ПолучитьКаталогСистемныхБиблиотек(); |
24 | 24 | УстановитьЦелевойКаталог(КаталогСистемныхБиблиотек); |
25 | 25 | КонецЕсли; |
26 | 26 |
|
|
40 | 40 | ); |
41 | 41 | УстановитьКаталогЗависимостей(ПутьККаталогуЛокальнойУстановки); |
42 | 42 | Иначе |
| 43 | + КаталогСистемныхБиблиотек = ПолучитьКаталогСистемныхБиблиотек(); |
43 | 44 | УстановитьКаталогЗависимостей(КаталогСистемныхБиблиотек); |
44 | 45 | КонецЕсли; |
45 | 46 | КонецЕсли; |
46 | 47 |
|
47 | 48 | КешУстановленныхПакетов = Новый Соответствие; |
48 | 49 |
|
49 | | - |
50 | | - |
51 | 50 | КонецПроцедуры |
52 | 51 |
|
53 | 52 | Процедура УстановитьРежимУстановкиПакетов(Знач ЗначениеРежимУстановкиПакетов) Экспорт |
|
115 | 114 | КонецПопытки; |
116 | 115 |
|
117 | 116 | МанифестПакета = УстановкаПакета.ПолучитьМанифестПакета(); |
118 | | - |
| 117 | + ИмяПакета = МанифестПакета.Свойства().Имя; |
| 118 | + |
| 119 | + ПолныйПутьККаталогуУстановки = Новый Файл(КаталогУстановки).ПолноеИмя; |
| 120 | + ИмяКаталогаЛокальныхЗависимостей = КонстантыOpm.ЛокальныйКаталогУстановкиПакетов; |
| 121 | + |
| 122 | + ПутьККаталогуЛокальныхЗависимостей = ОбъединитьПути(ПолныйПутьККаталогуУстановки, ИмяПакета, ИмяКаталогаЛокальныхЗависимостей); |
| 123 | + |
119 | 124 | // Тут надо корректно найти имя пакета в пути |
120 | | - Если НЕ ФС.КаталогСуществует(ОбъединитьПути(Новый Файл(КаталогУстановки).ПолноеИмя, КонстантыOpm.ЛокальныйКаталогУстановкиПакетов)) Тогда |
| 125 | + Если ФС.КаталогСуществует(ПутьККаталогуЛокальныхЗависимостей) Тогда |
| 126 | + РазрешитьЗависимостиПакетаЛокально(МанифестПакета, ПутьККаталогуЛокальныхЗависимостей); |
| 127 | + Иначе |
121 | 128 | РазрешитьЗависимостиПакета(МанифестПакета); |
122 | 129 | КонецЕсли; |
123 | 130 |
|
|
157 | 164 |
|
158 | 165 | КонецПроцедуры |
159 | 166 |
|
| 167 | +Процедура РазрешитьЗависимостиПакетаЛокально(Манифест, ПутьККаталогуЛокальныхЗависимостей) |
| 168 | + |
| 169 | + Зависимости = Манифест.Зависимости(); |
| 170 | + Если Зависимости.Количество() = 0 Тогда |
| 171 | + Возврат; |
| 172 | + КонецЕсли; |
| 173 | + |
| 174 | + УстановленныеПакеты = ПолучитьУстановленныеПакеты(); |
| 175 | + |
| 176 | + Для Каждого Зависимость Из Зависимости Цикл |
| 177 | + Лог.Информация("Устанавливаю зависимость: <%1> из каталога локальных зависимостей", Зависимость.ИмяПакета); |
| 178 | + |
| 179 | + Если УстановленныеПакеты.ПакетУстановлен(Зависимость, КаталогУстановкиЗависимостей) Тогда |
| 180 | + Лог.Информация("<%1> уже установлен. Пропускаем.", Зависимость.ИмяПакета); |
| 181 | + Продолжить; |
| 182 | + КонецЕсли; |
| 183 | + |
| 184 | + ПутьККаталогуПакетаЗависимостиИсточник = ОбъединитьПути(ПутьККаталогуЛокальныхЗависимостей, Зависимость.ИмяПакета); |
| 185 | + |
| 186 | + Если ФС.КаталогСуществует(ПутьККаталогуПакетаЗависимостиИсточник) Тогда |
| 187 | + |
| 188 | + ПутьККаталогуПакетаЗависимостиПриемник = ОбъединитьПути(КаталогУстановкиЗависимостей, Зависимость.ИмяПакета); |
| 189 | + ФС.КопироватьСодержимоеКаталога(ПутьККаталогуПакетаЗависимостиИсточник, ПутьККаталогуПакетаЗависимостиПриемник); |
| 190 | + |
| 191 | + Иначе |
| 192 | + |
| 193 | + УстановитьПакетПоОписанию(Зависимость); |
| 194 | + |
| 195 | + КонецЕсли; |
| 196 | + |
| 197 | + УстановленныеПакеты.Обновить(); |
| 198 | + |
| 199 | + КонецЦикла; |
| 200 | + |
| 201 | +КонецПроцедуры |
| 202 | + |
160 | 203 | Функция ПолучитьУстановленныеПакеты() |
161 | 204 |
|
162 | 205 | КэшУстановленныхПакетов = Новый КэшУстановленныхПакетов(КаталогУстановкиЗависимостей); |
|
0 commit comments