Skip to content

Commit a17159d

Browse files
authored
Merge pull request #3 from nixel2007/feature/opm-install
Добавлен режим установки зависимостей пакета
2 parents fe0f3a1 + 0f2bb29 commit a17159d

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

src/Классы/ДиспетчерКомандПриложения.os

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
КонецПроцедуры
3232

3333
Процедура ДобавитьКомандуInstall(Знач Парсер)
34-
Команда = Парсер.ОписаниеКоманды("install", "Установить пакет из хаба или из файла");
34+
Команда = Парсер.ОписаниеКоманды("install", "Выполнить установку. Если указано имя пакета, происходит установка из хаба или из файла. В обратном случае устанавливаются зависимости текущего пакета по файлу packagedef.");
3535
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-f", "Указать файл из которого нужно установить пакет");
3636
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "ИмяПакета", "Имя пакета в хабе");
3737
Парсер.ДобавитьКоманду(Команда);
@@ -83,7 +83,9 @@
8383
Процедура УстановитьПакет(Знач ЗначенияПараметров) Экспорт
8484

8585
Установщик = Новый УстановкаПакета;
86-
Если ЗначенияПараметров["-f"] <> Неопределено Тогда
86+
Если ЗначенияПараметров["-f"] = Неопределено И ЗначенияПараметров["ИмяПакета"] = Неопределено Тогда
87+
Установщик.УстановитьПакетыПоОписаниюПакета();
88+
ИначеЕсли ЗначенияПараметров["-f"] <> Неопределено Тогда
8789
Установщик.УстановитьПакетИзАрхива(ЗначенияПараметров["-f"]);
8890
Иначе
8991
Установщик.УстановитьПакетИзОблака(ЗначенияПараметров["ИмяПакета"]);

src/Классы/УстановкаПакета.os

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,23 @@
5959

6060
КонецПроцедуры
6161

62+
Процедура УстановитьПакетыПоОписаниюПакета() Экспорт
63+
64+
ПутьКМанифесту = ОбъединитьПути(ТекущийКаталог(), Константы.ИмяФайлаСпецификацииПакета);
65+
66+
Файл_Манифест = Новый Файл(ПутьКМанифесту);
67+
Если НЕ Файл_Манифест.Существует() Тогда
68+
ВызватьИсключение "В текущем каталоге не обнаружен файл " + Константы.ИмяФайлаСпецификацииПакета;
69+
КонецЕсли;
70+
71+
Описание = Новый ОписаниеПакета();
72+
Контекст = Новый Структура("Описание", Описание);
73+
ЗагрузитьСценарий(ПутьКМанифесту, Контекст);
74+
75+
РазрешитьЗависимостиПакета(Описание);
76+
77+
КонецПроцедуры
78+
6279
Процедура УдалитьКаталогУстановкиПриОшибке(Знач Каталог)
6380
Лог.Отладка("Удаляю каталог " + Каталог);
6481
Попытка

0 commit comments

Comments
 (0)