Skip to content

Commit 34fa428

Browse files
committed
Merge branch 'release/v0.8.0'
2 parents 7ff3aa7 + e4bbe6a commit 34fa428

4 files changed

+60
-7
lines changed

packagedef

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
Описание.Имя("opm")
3-
.Версия("0.7.0")
3+
.Версия("0.8.0")
44
.ЗависитОт("logos")
55
.ЗависитОт("cmdline")
66
.ЗависитОт("tempfiles")

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

+15-4
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,15 @@
4949

5050
Процедура ДобавитьКомандуInstall(Знач Парсер)
5151
Команда = Парсер.ОписаниеКоманды("install", "Выполнить установку. Если указано имя пакета, происходит установка из хаба или из файла. В обратном случае устанавливаются зависимости текущего пакета по файлу packagedef.");
52+
Парсер.ДобавитьПараметрФлагКоманды(Команда, "-all", "Установить все пакеты, зарегистрированные в хабе");
5253
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-f", "Указать файл из которого нужно установить пакет");
5354
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "ИмяПакета", "Имя пакета в хабе. Чтобы установить конкретную версию, используйте ИмяПакета@ВерсияПакета");
5455
Парсер.ДобавитьКоманду(Команда);
5556
КонецПроцедуры
5657

5758
Процедура ДобавитьКомандуUpdate(Знач Парсер)
5859
Команда = Парсер.ОписаниеКоманды("update", "Обновить пакет");
60+
Парсер.ДобавитьПараметрФлагКоманды(Команда, "-all", "Обновить все установленные пакеты");
5961
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-f", "Указать файл из которого нужно установить пакет");
6062
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "ИмяПакета", "Имя пакета в хабе. Чтобы установить конкретную версию, используйте ИмяПакета@ВерсияПакета");
6163
Парсер.ДобавитьКоманду(Команда);
@@ -125,7 +127,9 @@
125127
Процедура УстановитьПакет(Знач ЗначенияПараметров) Экспорт
126128

127129
Установщик = Новый УстановкаПакета;
128-
Если ЗначенияПараметров["-f"] = Неопределено И ЗначенияПараметров["ИмяПакета"] = Неопределено Тогда
130+
Если ЗначенияПараметров["-all"] Тогда
131+
Установщик.УстановитьВсеПакетыИзОблака();
132+
ИначеЕсли ЗначенияПараметров["-f"] = Неопределено И ЗначенияПараметров["ИмяПакета"] = Неопределено Тогда
129133
Установщик.УстановитьПакетыПоОписаниюПакета();
130134
ИначеЕсли ЗначенияПараметров["-f"] <> Неопределено Тогда
131135
Установщик.УстановитьПакетИзАрхива(ЗначенияПараметров["-f"]);
@@ -159,7 +163,9 @@
159163
Процедура ОбновитьПакет(Знач ЗначенияПараметров) Экспорт
160164

161165
Установщик = Новый УстановкаПакета;
162-
Если ЗначенияПараметров["-f"] <> Неопределено Тогда
166+
Если ЗначенияПараметров["-all"] Тогда
167+
Установщик.ОбновитьУстановленныеПакеты();
168+
ИначеЕсли ЗначенияПараметров["-f"] <> Неопределено Тогда
163169
Установщик.УстановитьПакетИзАрхива(ЗначенияПараметров["-f"]);
164170
Иначе
165171
Установщик.ОбновитьПакетИзОблака(ЗначенияПараметров["ИмяПакета"]);
@@ -215,7 +221,7 @@
215221
ТихийРежим = ЗначенияПараметров["-q"];
216222

217223
Если ЗначенияПараметров["-remote"] Тогда
218-
ТекстСообщения = СтрШаблон("Пакеты в хабе :");
224+
ТекстСообщения = СтрШаблон("Пакеты в хабе:");
219225
КэшПакетовВХабе = Новый КэшПакетовХаба();
220226
УстановленныеПакеты = КэшПакетовВХабе.ПолучитьПакетыХаба();
221227
Иначе
@@ -232,7 +238,12 @@
232238
КонецЕсли;
233239

234240
Для Каждого УстановленныйПакет Из УстановленныеПакеты Цикл
235-
Сообщить(УстановленныйПакет.Ключ);
241+
СтрокаСообщения = УстановленныйПакет.Ключ;
242+
Если ТипЗнч(УстановленныйПакет.Значение) = Тип("ОписаниеПакета") Тогда
243+
ОписаниеПакета = УстановленныйПакет.Значение;
244+
СтрокаСообщения = СтрокаСообщения + "@" + ОписаниеПакета.Свойства().Версия;
245+
КонецЕсли;
246+
Сообщить(СтрокаСообщения);
236247
КонецЦикла;
237248

238249
КонецПроцедуры

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

+17-2
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,23 @@
4141

4242
Процедура ДобавитьУстановленныйПакет(Знач ФайлКаталога)
4343

44-
// TODO - здесь какое-то мета-описание нужно вместо Истины
45-
УстановленныеПакеты.Вставить(ФайлКаталога.Имя, Истина);
44+
ПутьКФайлуМетаданных = ОбъединитьПути(ФайлКаталога.ПолноеИмя, Константы.ИмяФайлаМетаданныхПакета);
45+
ФайлМетаданных = Новый Файл(ПутьКФайлуМетаданных);
46+
Если ФайлМетаданных.Существует() Тогда
47+
48+
Чтение = Новый ЧтениеXML;
49+
Чтение.ОткрытьФайл(ПутьКФайлуМетаданных);
50+
Лог.Отладка("XML загружен");
51+
Сериализатор = Новый СериализацияМетаданныхПакета;
52+
МетаОписаниеПакета = Сериализатор.ПрочитатьXML(Чтение);
53+
54+
Чтение.Закрыть();
55+
56+
Иначе
57+
МетаОписаниеПакета = Истина;
58+
КонецЕсли;
59+
60+
УстановленныеПакеты.Вставить(ФайлКаталога.Имя, МетаОписаниеПакета);
4661

4762
КонецПроцедуры
4863

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

+27
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
Если СтандартнаяОбработка Тогда
4444
СгенерироватьСкриптыЗапускаПриложенийПриНеобходимости(ПутьУстановки.ПолноеИмя, Метаданные);
4545
КонецЕсли;
46+
СохранитьФайлМетаданныхПакета(ПутьУстановки.ПолноеИмя, ФайлМетаданных);
4647

4748
ЧтениеПакета.Закрыть();
4849

@@ -114,13 +115,31 @@
114115

115116
КонецПроцедуры
116117

118+
Процедура УстановитьВсеПакетыИзОблака() Экспорт
119+
120+
КэшПакетовХаба = Новый КэшПакетовХаба();
121+
ПакетыХаба = КэшПакетовХаба.ПолучитьПакетыХаба();
122+
Для Каждого КлючИЗначение Из ПакетыХаба Цикл
123+
УстановитьПакетИзОблака(КлючИЗначение.Ключ);
124+
КонецЦикла;
125+
126+
КонецПроцедуры
127+
117128
Процедура ОбновитьПакетИзОблака(Знач ИмяПакета) Экспорт
118129

119130
ИмяВерсияПакета = РаботаСВерсиями.РазобратьИмяПакета(ИмяПакета);
120131
СкачатьИУстановитьПакет(ИмяВерсияПакета.ИмяПакета, ИмяВерсияПакета.Версия);
121132

122133
КонецПроцедуры
123134

135+
Процедура ОбновитьУстановленныеПакеты() Экспорт
136+
КэшУстановленныхПакетов = Новый КэшУстановленныхПакетов;
137+
УстановленныеПакеты = КэшУстановленныхПакетов.ПолучитьУстановленныеПакеты();
138+
Для Каждого КлючИЗначение Из УстановленныеПакеты Цикл
139+
ОбновитьПакетИзОблака(КлючИЗначение.Ключ);
140+
КонецЦикла;
141+
КонецПроцедуры
142+
124143
Функция НайтиСоздатьКаталогУстановки(Знач ИдентификаторПакета)
125144

126145
СистемныеБиблиотеки = КаталогСистемныхБиблиотек();
@@ -381,6 +400,14 @@
381400

382401
КонецФункции
383402

403+
Процедура СохранитьФайлМетаданныхПакета(Знач КаталогУстановки, Знач ПутьКФайлуМетаданных)
404+
405+
ПутьСохранения = ОбъединитьПути(КаталогУстановки, Константы.ИмяФайлаМетаданныхПакета);
406+
ДанныеФайла = Новый ДвоичныеДанные(ПутьКФайлуМетаданных);
407+
ДанныеФайла.Записать(ПутьСохранения);
408+
409+
КонецПроцедуры
410+
384411
//////////////////////////////////////////////////////////////////////////////////
385412
//
386413

0 commit comments

Comments
 (0)