forked from vanessa-opensource/vanessa-runner
-
Notifications
You must be signed in to change notification settings - Fork 0
/
packagedef
165 lines (130 loc) · 7.73 KB
/
packagedef
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
#Использовать 1commands
////////////////////////////////////////////////////////////
// Описание пакета для сборки и установки
// Полную документацию см. на hub.oscript.io/packaging
//
#Область УстановкаПакетаНаКлиентскойМашине
// Вызывается пакетным менеджером перед установкой пакета на клиентскую машину.
//
// Параметры:
// КаталогУстановкиПакета - Строка - Путь в который пакетный менеджер устанавливает текущий пакет.
// ЧтениеZipФайла - ЧтениеZipФайла - Архив пакета.
//
Процедура ПередУстановкой(Знач КаталогУстановкиПакета, Знач ЧтениеZipФайла) Экспорт
КонецПроцедуры
// Вызывается пакетным менеджером после распаковки пакета на клиентскую машину.
//
// Параметры:
// КаталогУстановкиПакета - Строка - Путь в который пакетный менеджер устанавливает текущий пакет.
// СтандартнаяОбработка - Булево - стандартная обработка
//
Процедура ПриУстановке(Знач КаталогУстановкиПакета, СтандартнаяОбработка) Экспорт
КонецПроцедуры
#КонецОбласти
#Область СборкаПакета
// Вызывается пакетным менеджером перед началом сборки пакета.
//
// Параметры:
// РабочийКаталог - Строка - Текущий рабочий каталог с исходниками пакета.
//
Процедура ПередСборкой(Знач РабочийКаталог) Экспорт
Команда = Новый Команда;
Команда.УстановитьПравильныйКодВозврата(0);
Команда.ПоказыватьВыводНемедленно(Истина);
Команда.УстановитьСтрокуЗапуска("oscript src/main.os compileepf epf epf --v8version 8.3");
КодВозврата = Команда.Исполнить();
Сообщить("Вывод команды " + Команда.ПолучитьВывод());
Если КодВозврата <> 0 Тогда
ВызватьИсключение СтрШаблон("Код возврата не равен 0, а равен %1", КодВозврата);
КонецЕсли;
СобратьПакетСЛокальнымиЗависимостями(РабочийКаталог);
КонецПроцедуры
// Вызывается пакетным менеджером после помещения файлов в пакет.
//
// Параметры:
// РабочийКаталог - Строка - Текущий рабочий каталог с исходниками пакета.
// АрхивПакета - ЗаписьZIPФайла - ZIP-архив с содержимым пакета (включаемые файлы).
//
Процедура ПриСборке(Знач РабочийКаталог, Знач АрхивПакета) Экспорт
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Процедура СобратьПакетСЛокальнымиЗависимостями(Знач РабочийКаталог) Экспорт
Попытка
УдалитьФайлы(ОбъединитьПути(РабочийКаталог, "oscript_modules"), "*.*");
Исключение
// При удалении иногда возникают ошибки, но это не критично
КонецПопытки;
СистемнаяИнформация = Новый СистемнаяИнформация;
ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0;
Если ЭтоWindows Тогда
ИмяУтилиты = КаталогПрограммы() + "\opm.bat";
Иначе
ИмяУтилиты = "opm";
КонецЕсли;
СтрокаЗапуска = СтрШаблон("%1 install -l", ИмяУтилиты);
Сообщить(СтрокаЗапуска);
Процесс = СоздатьПроцесс(СтрокаЗапуска, РабочийКаталог);
Процесс.Запустить();
Процесс.ОжидатьЗавершения();
Если Процесс.КодВозврата <> 0 Тогда
ВызватьИсключение "Ошибка сборки пакета";
КонецЕсли;
ВосстановитьНастройкиЗависимостейВ_oscript_cfg();
КонецПроцедуры
// TODO до исправления бага opm - удаляется строки с lib.system
Процедура ВосстановитьНастройкиЗависимостейВ_oscript_cfg()
ИмяФайлаНастройки = "oscript.cfg";
ИмяФайлаШаблона = "oscript-template.cfg";
Каталоги = КаталогиС_oscript_cfg();
Для Каждого Каталог Из Каталоги Цикл
КопироватьФайл(ОбъединитьПути("tools", ИмяФайлаШаблона), ОбъединитьПути(Каталог, ИмяФайлаНастройки));
КонецЦикла;
КонецПроцедуры
Функция КаталогиС_oscript_cfg()
Результат = Новый Массив;
Результат.Добавить("src");
Результат.Добавить("tools");
Возврат Новый ФиксированныйМассив(Результат);
КонецФункции
#КонецОбласти
Описание.Имя("vanessa-runner")
.Версия("2.5.0")
.ВерсияСреды("1.9.0")
.ЗависитОт("1commands", "1.5.0")
.ЗависитОт("asserts", "1.4.0")
.ЗависитОт("cli-selector", "0.5.0")
.ЗависитОт("cmdline", "1.0.0")
.ЗависитОт("fluent", "0.6.1")
.ЗависитОт("fs", "1.2.0")
.ЗависитОт("ibcmdrunner", "0.3.0")
.ЗависитОт("json", "1.1.1")
.ЗависитОт("logos", "1.7.0")
.ЗависитОт("ParserFileV8i", "0.0.5")
.ЗависитОт("semver", "0.5.2")
.ЗависитОт("strings", "0.5.0")
.ЗависитОт("tempfiles", "1.0.0")
.ЗависитОт("v8find", "0.3.0")
.ЗависитОт("v8runner", "1.10.0")
.ЗависитОт("v8storage", "0.6.5")
.ЗависитОт("v8unpack", "1.0.6")
.ЗависитОт("packageinfo", "1.0")
.ЗависитОт("gitrunner", "1.7.1")
.РазработкаЗависитОт("1bdd", "1.14.0")
.РазработкаЗависитОт("1testrunner", "1.8.0")
.РазработкаЗависитОт("add", "6.8.0")
.ВключитьФайл("tools")
.ВключитьФайл("src")
.ВключитьФайл("features")
.ВключитьФайл("epf")
.ВключитьФайл("oscript_modules")
.ВключитьФайл("packagedef")
.ВключитьФайл("examples")
.ВключитьФайл("readme.md")
.ВключитьФайл("LICENSE")
.ВключитьФайл("vanessa-runner-schema.json")
.ОпределяетКласс("runner", "tools/runner.os")
.ИсполняемыйФайл("src/main.os", "runner")
.ИсполняемыйФайл("src/main.os", "vrunner")
.ИсполняемыйФайл("src/main.os", "vanessa-runner")
.ИсполняемыйФайл("tools/runner.os", "runner-old");