|
5 | 5 |
|
6 | 6 | КомандаПриложения.Опция("a all", Ложь, "Установить все пакеты, зарегистрированные в хабе"); |
7 | 7 | КомандаПриложения.Опция("f file", "", "Указать файл из которого нужно установить пакет. Поддерживает указание маски файла для пакетной установки"); |
| 8 | + КомандаПриложения.Опция("u url", "", "Указать прямую интернет-ссылку на файл *.ospx из которого нужно установить пакет"); |
| 9 | + |
8 | 10 | КомандаПриложения.Опция("l local", Ложь, "Установить пакеты в локальный каталог oscript_modules"); |
9 | 11 | КомандаПриложения.Опция("dev", Ложь, "Признак установки пакетов для разработки"); |
10 | 12 | КомандаПриложения.Опция("s skip-install-deps", Ложь, "признак пропуска установки зависимых пакетов"); |
|
36 | 38 | УстановкаВсехПакетов = КомандаПриложения.ЗначениеОпции("all"); |
37 | 39 | КаталогУстановки = КомандаПриложения.ЗначениеОпции("dest"); |
38 | 40 | ФайлПакетаУстановки = КомандаПриложения.ЗначениеОпции("file"); |
| 41 | + ИнтернетСсылкаНаПакет = КомандаПриложения.ЗначениеОпции("url"); |
39 | 42 | МассивПакетовКУстановке = КомандаПриложения.ЗначениеАргумента("PACKAGE"); |
40 | 43 |
|
41 | 44 | НеобходимоУстановитьЗависимости = Не КомандаПриложения.ЗначениеОпции("skip-install-deps"); |
|
64 | 67 | Лог.Отладка("УстановкаВсехПакетов: %1", УстановкаВсехПакетов); |
65 | 68 | Лог.Отладка("КаталогУстановки: %1", КаталогУстановки); |
66 | 69 | Лог.Отладка("ФайлПакетаУстановки: %1", ФайлПакетаУстановки); |
| 70 | + Лог.Отладка("ИнтернетСсылкаНаПакет: %1", ИнтернетСсылкаНаПакет); |
67 | 71 | Лог.Отладка("МассивПакетовКУстановке: %1", МассивПакетовКУстановке.Количество()); |
68 | 72 | Лог.Отладка("НеобходимоУстановитьЗависимости: %1", НеобходимоУстановитьЗависимости); |
69 | 73 | Лог.Отладка("СоздаватьФайлыЗапуска: %1", СоздаватьФайлыЗапуска); |
|
76 | 80 |
|
77 | 81 | Если УстановкаВсехПакетов Тогда |
78 | 82 | РаботаСПакетами.УстановитьВсеПакетыИзОблака(РежимУстановки, ЦелевойКаталог, НастройкаУстановки); |
79 | | - ИначеЕсли ПустаяСтрока(ФайлПакетаУстановки) И МассивПакетовКУстановке.Количество() = 0 Тогда |
| 83 | + ИначеЕсли ПустаяСтрока(ФайлПакетаУстановки) И ПустаяСтрока(ИнтернетСсылкаНаПакет) И МассивПакетовКУстановке.Количество() = 0 Тогда |
80 | 84 | РаботаСПакетами.УстановитьПакетыПоОписаниюПакета(РежимУстановки, ЦелевойКаталог, НастройкаУстановки); |
81 | 85 | ИначеЕсли НЕ ПустаяСтрока(ФайлПакетаУстановки) Тогда |
82 | 86 |
|
|
98 | 102 |
|
99 | 103 | КонецЦикла; |
100 | 104 |
|
| 105 | + ИначеЕсли НЕ ПустаяСтрока(ИнтернетСсылкаНаПакет) Тогда |
| 106 | + |
| 107 | + позСервер = СтрНайти(ИнтернетСсылкаНаПакет, "/", , , 3); |
| 108 | + Сервер = Лев(ИнтернетСсылкаНаПакет, позСервер-1); |
| 109 | + Адрес = Сред(ИнтернетСсылкаНаПакет, позСервер); |
| 110 | + Если Нрег(Лев(Сервер, 5)) = "https" Тогда |
| 111 | + Порт = 443; |
| 112 | + Иначе |
| 113 | + Порт = 80; |
| 114 | + КонецЕсли; |
| 115 | + |
| 116 | + Соединение = Новый HTTPСоединение(Сервер, Порт); |
| 117 | + Запрос = Новый HTTPЗапрос(Адрес); |
| 118 | + Ответ = Соединение.Получить(Запрос); |
| 119 | + ДД = Ответ.ПолучитьТелоКакДвоичныеДанные(); |
| 120 | + ИмяВременногоФайла = ПолучитьИмяВременногоФайла("ospx"); |
| 121 | + ДД.Записать(ИмяВременногоФайла); |
| 122 | + |
| 123 | + РаботаСПакетами.УстановитьПакетИзФайла(ИмяВременногоФайла, РежимУстановки, ЦелевойКаталог, НастройкаУстановки); |
| 124 | + |
| 125 | + УдалитьФайлы(ИмяВременногоФайла); |
| 126 | + |
101 | 127 | Иначе |
102 | 128 |
|
103 | 129 | Для каждого ИмяПакета Из МассивПакетовКУстановке Цикл |
|
111 | 137 | РаботаСПакетами.УстановитьПакетИзОблака(ИмяПакета, РежимУстановки, ЦелевойКаталог, НастройкаУстановки); |
112 | 138 |
|
113 | 139 | КонецЕсли; |
114 | | - |
115 | 140 |
|
116 | 141 | КонецЦикла; |
117 | 142 |
|
|
0 commit comments