1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-12-23 02:06:12 +02:00
OpenIntegrations/.github/workflows/os/main.os

170 lines
8.1 KiB
Plaintext
Raw Normal View History

#Использовать "./internal"
2024-08-13 13:35:37 +02:00
#Использовать "./internal/Modules/internal"
Перем ПутьPackagedef;
Перем ОсновнойПутьИсходников;
Перем СоответствиеЗамен;
Перем ПутьПакета;
Перем Версия;
Перем Языки;
Перем КаталогСловарей;
Перем ФайлыПеревода;
Перем ФайлыРазбораСловаря;
Перем ФайлыФорматирования;
Перем Корень;
Перем ОсновнойЯзык;
Перем КаталогWorkflow;
Перем КаталогПараметровЛок;
Перем КаталогДополнений;
Перем ФайлПроверкиНабораТестов;
Процедура ПриСозданииОбъекта()
ДанныеПроекта = ОбщиеМетоды.ПолучитьДанныеПроекта();
// Основные
Корень = ДанныеПроекта["root"];
КаталогПакета = ДанныеПроекта["packageSrc"];
ОсновнойЯзык = ДанныеПроекта["mainLang"];
Версия = ДанныеПроекта["version"];
Языки = ДанныеПроекта["additionalLangs"];
КаталогСловарей = ДанныеПроекта["dictionariesSrc"];
КаталогWorkflow = ДанныеПроекта["workflowsSrc"];
КаталогПараметровЛок = ДанныеПроекта["locVarsSrc"];
КаталогДополнений = ДанныеПроекта["paramsExamplesSrc"];
ОсновнойПутьИсходников = Корень + ОсновнойЯзык + "/";
ПутьПакета = ОсновнойПутьИсходников + КаталогПакета;
ПутьPackagedef = ПутьПакета + "packagedef";
// Замены для OneScript
2024-03-14 13:16:33 +02:00
СоответствиеЗамен = Новый Соответствие();
СоответствиеЗамен.Вставить("// #Использовать" , "#Использовать");
СоответствиеЗамен.Вставить("//#Использовать" , "#Использовать");
2024-03-30 13:13:06 +02:00
СоответствиеЗамен.Вставить("УстановитьБезопасныйРежим(Истина);" , "");
СоответствиеЗамен.Вставить("УстановитьБезопасныйРежим(Ложь);" , "");
СоответствиеЗамен.Вставить("// !OInt " , "");
2024-03-14 13:16:33 +02:00
// Файлы перевода
ФайлыРазбораСловаря = ОпределитьНаборФайловДляСловаря();
ФайлыПеревода = ОпределитьНаборФайловПеревода();
2024-03-14 13:16:33 +02:00
КонецПроцедуры
Процедура ОсновнаяОбработка() Экспорт
2024-03-15 08:25:48 +02:00
СоответствиеМодулей = МетодыКонвертации.ПолучитьСопоставлениеФайлов(ОсновнойПутьИсходников);
2024-03-14 13:16:33 +02:00
МетодыВерсионирования.ОбновитьНомераВерсий(ПутьPackagedef, Версия);
МетодыВерсионирования.ОбновитьLibConfig(СоответствиеМодулей, ПутьПакета);
МетодыКонвертации.ПортироватьНабор(СоответствиеМодулей, СоответствиеЗамен);
2024-08-13 13:35:37 +02:00
ЛокальныеПараметры = НайтиФайлы(КаталогПараметровЛок, "*.json");
ЕстьНовыеСлова = МетодыСловарей.СоздатьНаборСловарей(ФайлыРазбораСловаря, Языки, КаталогСловарей);
Если Не ЕстьНовыеСлова Тогда
МетодыПеревода.ПеревестиПроект(КаталогСловарей, Корень, ОсновнойЯзык, Языки, ФайлыПеревода);
ФайлыФорматирования = ОпределитьНаборФайловФорматирования();
МетодыФорматирования.ОтформатироватьНабор(ФайлыФорматирования);
2024-03-14 13:16:33 +02:00
2024-08-14 14:32:55 +02:00
Для Каждого ФайлПараметров Из ЛокальныеПараметры Цикл
ТекущиеПараметры = Инструменты.ПрочитатьФайлJSON(ФайлПараметров.ПолноеИмя);
МодульТестов = ТекущиеПараметры["testsModulePath"];
КаталогПримеров = ТекущиеПараметры["codeExamplesSrc"];
КаталогЗначенийТестов = ТекущиеПараметры["testValuesSrc"];
ИмяОбласти = ТекущиеПараметры["testsRegionName"];
МетодыПримеровКода.ПолучитьПримерыКодаДокументации(МодульТестов
, КаталогПримеров
, КаталогЗначенийТестов
, ИмяОбласти);
КонецЦикла;
Языки.Добавить(ОсновнойЯзык);
2024-03-14 13:16:33 +02:00
МетодыCLI.СформироватьCLI(Корень, Языки, КаталогДополнений);
МетодыФормированияТестовGA.СоздатьНаборWorkflow(Языки, КаталогПараметровЛок, КаталогWorkflow);
Иначе
Сообщить("В словарях есть новые слова без перевода. Перевод и создание CLI не выполнено!");
КонецЕсли;
2024-08-14 08:06:31 +02:00
Сообщить("Обработка завершена!");
2024-03-14 13:16:33 +02:00
КонецПроцедуры
Функция ОпределитьНаборФайловДляСловаря()
2024-03-14 13:16:33 +02:00
ВсеФайлы = НайтиФайлы(ОсновнойПутьИсходников, "*", Истина);
МассивФайлов = Новый Массив;
2024-03-14 13:16:33 +02:00
Для Каждого ФайлПроекта Из ВсеФайлы Цикл
2024-03-14 13:16:33 +02:00
Признак =
СтрНайти(ФайлПроекта.ПолноеИмя, "cli\data") = 0
И СтрНайти(ФайлПроекта.ПолноеИмя, "cli/data") = 0
И Не ФайлПроекта.ЭтоКаталог();
2024-03-14 13:16:33 +02:00
Если Признак Тогда
МассивФайлов.Добавить(ФайлПроекта);
КонецЕсли;
2024-03-14 13:16:33 +02:00
КонецЦикла;
Возврат МассивФайлов;
2024-03-14 13:16:33 +02:00
КонецФункции
Функция ОпределитьНаборФайловФорматирования()
// Наборы файлов
ВсеФайлы = НайтиФайлы(Корень, "*", Истина);
МассивФайлов = Новый Массив;
Для Каждого ФайлПроекта Из ВсеФайлы Цикл
Признак =
(ФайлПроекта.Расширение = ".os"
Или ФайлПроекта.Расширение = ".bsl")
И СтрНайти(ФайлПроекта.ПолноеИмя, "cli/") = 0
И СтрНайти(ФайлПроекта.ПолноеИмя, "cli\") = 0;
Если Признак Тогда
МассивФайлов.Добавить(ФайлПроекта);
КонецЕсли;
2024-05-13 13:10:19 +02:00
КонецЦикла;
2024-05-13 13:10:19 +02:00
Возврат МассивФайлов;
2024-05-13 13:10:19 +02:00
КонецФункции
2024-05-13 13:10:19 +02:00
Функция ОпределитьНаборФайловПеревода()
// Наборы файлов
ВсеФайлы = НайтиФайлы(ОсновнойПутьИсходников, "*", Истина);
МассивФайлов = Новый Массив;
Для Каждого ФайлПроекта Из ВсеФайлы Цикл
2024-05-13 13:10:19 +02:00
Признак = СтрНайти(ФайлПроекта.ПолноеИмя, "cli") = 0;
2024-05-13 13:25:45 +02:00
Если Признак Тогда
МассивФайлов.Добавить(ФайлПроекта);
2024-05-13 13:25:45 +02:00
КонецЕсли;
2024-05-13 13:36:54 +02:00
2024-05-13 13:10:19 +02:00
КонецЦикла;
Возврат МассивФайлов;
2024-05-13 13:10:19 +02:00
КонецФункции
ПриСозданииОбъекта();
ОсновнаяОбработка();
2024-03-14 13:16:33 +02:00