Skip to content

Commit 618df2f

Browse files
committed
Merge branch 'release/v1.0.0'
2 parents 4d3c29b + 2cf569c commit 618df2f

12 files changed

+164
-75
lines changed

packagedef

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@
9393
.ЗависитОт("gitrunner", "1.6.0")
9494
.ВключитьФайл("packagedef")
9595
.ВключитьФайл("src")
96+
.ВключитьФайл("tasks")
9697
.ВключитьФайл("oscript_modules")
9798
.ОпределяетКласс("КэшУстановленныхПакетов", "src/core/Классы/КэшУстановленныхПакетов.os")
9899
.ОпределяетКласс("МенеджерПолученияПакетов", "src/core/Классы/МенеджерПолученияПакетов.os")

src/cmd/Классы/КомандаOpm_Install.os

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
КомандаПриложения.Опция("a all", Ложь, "Установить все пакеты, зарегистрированные в хабе");
77
КомандаПриложения.Опция("f file", "", "Указать файл из которого нужно установить пакет. Поддерживает указание маски файла для пакетной установки");
88
КомандаПриложения.Опция("l local", Ложь, "Установить пакеты в локальный каталог oscript_modules");
9+
КомандаПриложения.Опция("dev", Ложь, "Признак установки пакетов для разработки");
910
КомандаПриложения.Опция("s skip-install-deps", Ложь, "признак пропуска установки зависимых пакетов");
1011
КомандаПриложения.Опция("skip-create-app", Ложь, "признак отключения создания файла запуска");
1112
КомандаПриложения.Опция("d dest", "", "Переопределить стандартный каталог в который устанавливаются пакеты (вместо oscript_modules)");
@@ -31,6 +32,7 @@
3132
Процедура ВыполнитьКоманду(Знач КомандаПриложения) Экспорт
3233

3334
УстановкаВЛокальныйКаталог = КомандаПриложения.ЗначениеОпции("local");
35+
УстановкаПакетовРазработчика = КомандаПриложения.ЗначениеОпции("dev");
3436
УстановкаВсехПакетов = КомандаПриложения.ЗначениеОпции("all");
3537
КаталогУстановки = КомандаПриложения.ЗначениеОпции("dest");
3638
ФайлПакетаУстановки = КомандаПриложения.ЗначениеОпции("file");
@@ -58,6 +60,7 @@
5860
КонецЕсли;
5961

6062
Лог.Отладка("УстановкаВЛокальныйКаталог: %1", УстановкаВЛокальныйКаталог);
63+
Лог.Отладка("УстановкаПакетовРазработчика: %1", УстановкаПакетовРазработчика);
6164
Лог.Отладка("УстановкаВсехПакетов: %1", УстановкаВсехПакетов);
6265
Лог.Отладка("КаталогУстановки: %1", КаталогУстановки);
6366
Лог.Отладка("ФайлПакетаУстановки: %1", ФайлПакетаУстановки);
@@ -67,6 +70,7 @@
6770

6871
НастройкаУстановки = РаботаСПакетами.ПолучитьНастройкуУстановки();
6972
НастройкаУстановки.УстанавливатьЗависимости = НеобходимоУстановитьЗависимости;
73+
НастройкаУстановки.УстанавливатьЗависимостиРазработчика = УстановкаПакетовРазработчика;
7074
НастройкаУстановки.СоздаватьФайлыЗапуска = СоздаватьФайлыЗапуска;
7175
НастройкаУстановки.ИмяСервера = ИмяСервера;
7276

src/core/Классы/МенеджерУстановкиПакетов.os

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
Перем ИмяСервера;
1616

1717
Перем УстанавливатьЗависимости;
18+
Перем УстанавливатьЗависимостиРазработчика;
1819
Перем СоздаватьФайлыЗапуска;
1920

2021
Процедура ПриСозданииОбъекта(Знач ВходящийРежимУстановкиПакетов = Неопределено, Знач ВходящийКаталогУстановки = Неопределено, Знач ВходящийКаталогУстановкиЗависимостей = Неопределено, Знач ВходящийИмяСервера = "")
@@ -52,6 +53,7 @@
5253

5354
КешУстановленныхПакетов = Новый Соответствие;
5455
УстанавливатьЗависимости = Истина;
56+
УстанавливатьЗависимостиРазработчика = Ложь;
5557
СоздаватьФайлыЗапуска = Истина;
5658
ИмяСервера = ВходящийИмяСервера;
5759
КонецПроцедуры
@@ -60,6 +62,10 @@
6062
УстанавливатьЗависимости = ПУстанавливатьЗависимости;
6163
КонецПроцедуры
6264

65+
Процедура УстанавливатьЗависимостиРазработчика(Знач ПУстанавливатьЗависимостиРазработчика) Экспорт
66+
УстанавливатьЗависимостиРазработчика = ПУстанавливатьЗависимостиРазработчика;
67+
КонецПроцедуры
68+
6369
Процедура СоздаватьФайлыЗапуска(Знач ПСоздаватьФайлыЗапуска) Экспорт
6470
СоздаватьФайлыЗапуска = ПСоздаватьФайлыЗапуска;
6571
КонецПроцедуры
@@ -95,9 +101,19 @@
95101

96102
КонецПроцедуры
97103

98-
Процедура УстановитьПакетПоОписанию(Знач ОписаниеПакета) Экспорт
104+
Процедура УстановитьПакетПоОписанию(Знач ЗависимостьПакета) Экспорт
99105

100-
УстановитьПакетПоИмениИВерсии(ОписаниеПакета.ИмяПакета, ОписаниеПакета.МинимальнаяВерсия, Истина);
106+
Если ЗависимостьПакета.ДляРазработки Тогда
107+
Если УстанавливатьЗависимостиРазработчика Тогда
108+
Лог.Информация("<%1> отмечена как зависимость для разработчика. Устанавливаем.", ЗависимостьПакета.ИмяПакета);
109+
Иначе
110+
Лог.Информация("<%1> отмечена как зависимость для разработчика, " +
111+
"но установка зависимостей для разработчика не активирована. Пропускаем.", ЗависимостьПакета.ИмяПакета);
112+
Возврат;
113+
КонецЕсли;
114+
КонецЕсли;
115+
116+
УстановитьПакетПоИмениИВерсии(ЗависимостьПакета.ИмяПакета, ЗависимостьПакета.МинимальнаяВерсия, Истина);
101117

102118
КонецПроцедуры
103119

src/core/Классы/ОписаниеПакета.os

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@
4545
Возврат ЭтотОбъект;
4646
КонецФункции
4747

48+
Функция ВерсияМанифеста(Знач Параметр) Экспорт
49+
УстановитьСвойствоПакета("ВерсияМанифеста", Параметр);
50+
Возврат ЭтотОбъект;
51+
КонецФункции
52+
4853
Функция ТочкаВхода(Знач Параметр) Экспорт
4954
УстановитьСвойствоПакета("ТочкаВхода", Параметр);
5055
Возврат ЭтотОбъект;
@@ -81,10 +86,35 @@
8186

8287
Функция ЗависитОт(Знач ИмяПакета, Знач МинимальнаяВерсия = Неопределено, Знач МаксимальнаяВерсия = Неопределено) Экспорт
8388

84-
ТекЗависимость = Зависимость(ИмяПакета);
85-
Если ТекЗависимость = Неопределено Тогда
89+
Зависимость = Зависимость(ИмяПакета);
90+
Если Зависимость = Неопределено Тогда
91+
Зависимость = мЗависимости.Добавить();
92+
Зависимость.ИмяПакета = ИмяПакета;
93+
КонецЕсли;
94+
95+
Зависимость.ДляРазработки = Ложь;
96+
97+
Если МинимальнаяВерсия = Неопределено Тогда
98+
Возврат ЭтотОбъект;
99+
КонецЕсли;
100+
101+
Зависимость.МинимальнаяВерсия = МинимальнаяВерсия;
102+
Зависимость.МаксимальнаяВерсия = МаксимальнаяВерсия;
103+
104+
Возврат ЭтотОбъект;
105+
106+
КонецФункции
107+
108+
Функция РазработкаЗависитОт(
109+
Знач ИмяПакета,
110+
Знач МинимальнаяВерсия = Неопределено,
111+
Знач МаксимальнаяВерсия = Неопределено) Экспорт
112+
113+
Зависимость = Зависимость(ИмяПакета);
114+
Если Зависимость = Неопределено Тогда
86115
Зависимость = мЗависимости.Добавить();
87116
Зависимость.ИмяПакета = ИмяПакета;
117+
Зависимость.ДляРазработки = Истина;
88118
КонецЕсли;
89119

90120
Если МинимальнаяВерсия = Неопределено Тогда
@@ -195,6 +225,7 @@
195225

196226
мЗависимости = Новый ТаблицаЗначений;
197227
мЗависимости.Колонки.Добавить("ИмяПакета");
228+
мЗависимости.Колонки.Добавить("ДляРазработки", Новый ОписаниеТипов("Булево"));
198229
мЗависимости.Колонки.Добавить("МинимальнаяВерсия");
199230
мЗависимости.Колонки.Добавить("МаксимальнаяВерсия");
200231

src/core/Классы/СборщикПакета.os

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
УстановитьТекущийКаталог(РабочийКаталог);
3737
УточнитьФайлМанифеста(ФайлМанифеста);
3838
Манифест = ПрочитатьМанифест(ФайлМанифеста);
39+
РаботаСОписаниемПакета.ПроверитьВерсиюМанифеста(Манифест);
3940
ВызватьСобытиеПередСборкой();
4041
СобратьПакетВКаталогеСборки(Манифест, ВыходнойКаталог);
4142
УстановитьТекущийКаталог(ТекущийРабКаталог);

src/core/Классы/СериализацияМетаданныхПакета.os

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
СоответствиеИменСвойств.Вставить("Описание" , "description");
4545
СоответствиеИменСвойств.Вставить("АдресАвтора", "author-email");
4646
СоответствиеИменСвойств.Вставить("ВерсияСреды", "engine-version");
47+
СоответствиеИменСвойств.Вставить("ВерсияМанифеста", "manifest-version");
4748
СоответствиеИменСвойств.Вставить("Задачи", "tasks");
4849

4950
Возврат СоответствиеИменСвойств;
@@ -88,6 +89,7 @@
8889
Для Каждого Зависимость Из Зависимости Цикл
8990
Запись.ЗаписатьНачалоЭлемента(ИменаКоллекцийПакета().Зависимости);
9091
Запись.ЗаписатьАтрибут("name", Зависимость.ИмяПакета);
92+
Запись.ЗаписатьАтрибут("dev", Формат(Зависимость.ДляРазработки, "БЛ=false; БИ=true"));
9193
Если Не ПустаяСтрока(Зависимость.МинимальнаяВерсия) Тогда
9294
Запись.ЗаписатьАтрибут("version", Зависимость.МинимальнаяВерсия);
9395
КонецЕсли;
@@ -235,10 +237,21 @@
235237

236238
МинимальнаяВерсия = ЧтениеXML.ПолучитьАтрибут("version");
237239
МаксимальнаяВерсия = ЧтениеXML.ПолучитьАтрибут("version-max");
238-
239-
Лог.Отладка("Добавляем зависимость " + ИмяЗависимости + " " + МинимальнаяВерсия + " " + МаксимальнаяВерсия);
240-
ОписаниеПакета.ЗависитОт(ИмяЗависимости, МинимальнаяВерсия, МаксимальнаяВерсия);
241-
240+
ДляРазработки = ЧтениеXML.ПолучитьАтрибут("dev");
241+
242+
Лог.Отладка(
243+
"Добавляем зависимость %1 %2 %3 %4",
244+
ИмяЗависимости,
245+
МинимальнаяВерсия,
246+
МаксимальнаяВерсия,
247+
ДляРазработки
248+
);
249+
250+
Если ДляРазработки = "true" Тогда
251+
ОписаниеПакета.РазработкаЗависитОт(ИмяЗависимости, МинимальнаяВерсия, МаксимальнаяВерсия);
252+
Иначе
253+
ОписаниеПакета.ЗависитОт(ИмяЗависимости, МинимальнаяВерсия, МаксимальнаяВерсия);
254+
КонецЕсли;
242255
ЧтениеXML.Прочитать();
243256

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

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

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@
4040
ПутьУстановки = ОбъектКаталогУстановки.ПолноеИмя;
4141

4242
Лог.Информация("Устанавливаю пакет " + ИмяПакета);
43-
ПроверитьВерсиюСреды(Метаданные);
43+
РаботаСОписаниемПакета.ПроверитьВерсиюМанифеста(Метаданные);
44+
РаботаСОписаниемПакета.ПроверитьВерсиюСреды(Метаданные);
4445
Если мЗависимостиВРаботе[ИмяПакета] = "ВРаботе" Тогда
4546
ВызватьИсключение "Циклическая зависимость по пакету " + ИмяПакета;
4647
КонецЕсли;
@@ -91,34 +92,6 @@
9192
СоздаватьФайлЗапуска = ПСоздаватьФайлЗапуска;
9293
КонецПроцедуры
9394

94-
Процедура ПроверитьВерсиюСреды(Манифест)
95-
96-
Свойства = Манифест.Свойства();
97-
Если НЕ Свойства.Свойство("ВерсияСреды") Тогда
98-
Возврат;
99-
КонецЕсли;
100-
101-
ИмяПакета = Свойства.Имя;
102-
ТребуемаяВерсияСреды = Свойства.ВерсияСреды;
103-
СистемнаяИнформация = Новый СистемнаяИнформация;
104-
ВерсияСреды = СистемнаяИнформация.Версия;
105-
Лог.Отладка("ПроверитьВерсиюСреды: Перед вызовом СравнитьВерсии(ЭтаВерсия = <%1>, БольшеЧемВерсия = <%2>)", ТребуемаяВерсияСреды, ВерсияСреды);
106-
Если РаботаСВерсиями.СравнитьВерсии(ТребуемаяВерсияСреды, ВерсияСреды) > 0 Тогда
107-
ТекстСообщения = СтрШаблон(
108-
"Ошибка установки пакета <%1>: Обнаружена устаревшая версия движка OneScript.
109-
|Требуемая версия: %2
110-
|Текущая версия: %3
111-
|Обновите OneScript перед установкой пакета",
112-
ИмяПакета,
113-
ТребуемаяВерсияСреды,
114-
ВерсияСреды
115-
);
116-
117-
ВызватьИсключение ТекстСообщения;
118-
КонецЕсли;
119-
120-
КонецПроцедуры
121-
12295
Процедура УстановитьЦелевойКаталог(Знач ЦелевойКаталогУстановки) Экспорт
12396
Лог.Отладка("Каталог установки пакета '%1'", ЦелевойКаталогУстановки);
12497
ФС.ОбеспечитьКаталог(ЦелевойКаталогУстановки);

src/core/Модули/КонстантыOpm.os

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,5 @@
2424
ПутьВЗапасномХранилище = "/download/";
2525
ЛокальныйКаталогУстановкиПакетов = "oscript_modules";
2626
ИмяЛога = "oscript.app.opm";
27-
ВерсияПродукта = "0.16.3";
27+
ВерсияПродукта = "1.0.0";
2828
ИмяФайлаНастроек = "opm.cfg";

0 commit comments

Comments
 (0)