You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2026-04-26 20:43:22 +02:00
181 lines
10 KiB
Plaintext
181 lines
10 KiB
Plaintext
#Использовать fs
|
|
#Использовать "./internal"
|
|
|
|
Процедура ПриСозданииОбъекта(Знач Вариант_ = Неопределено, Знач Язык_ = Неопределено)
|
|
|
|
Если Вариант_ = Неопределено Тогда
|
|
Вариант = АргументыКоманднойСтроки[0];
|
|
Иначе
|
|
Вариант = Вариант_;
|
|
КонецЕсли;
|
|
|
|
Если Язык_ = Неопределено Тогда
|
|
Язык = АргументыКоманднойСтроки[1];
|
|
Иначе
|
|
Язык = Язык_;
|
|
КонецЕсли;
|
|
|
|
ДанныеПроекта = Новый ProjectData;
|
|
|
|
Обработчик = Новый DocsPageLocalizator(ДанныеПроекта, Язык);
|
|
|
|
NPM = ДанныеПроекта.ПолучитьЗначениеНастройки("local.npmPath");
|
|
|
|
КаталогОсновной = ДанныеПроекта.ПолучитьЗначениеНастройки("docs.deployMainSrc");
|
|
КаталогДокументов = ДанныеПроекта.ПолучитьЗначениеНастройки("docs.deployDocsSrc");
|
|
КаталогСборки = ДанныеПроекта.ПолучитьЗначениеНастройки("docs.deployBuildSrc");
|
|
КаталогNodeМодулей = ДанныеПроекта.ПолучитьЗначениеНастройки("docs.deployModulesSrc");
|
|
КаталогMDЯзыка = ДанныеПроекта.ПолучитьЗначениеНастройкиЛокализации("docsMdSrc", Язык);
|
|
КаталогРепозиторияКурсов = "./OpenIntegrations-Courses";
|
|
|
|
ОбъектСборки = Новый Файл(КаталогСборки);
|
|
ОбъектNodeМодулей = Новый Файл(КаталогNodeМодулей);
|
|
ОбъектДокументов = Новый Файл(КаталогДокументов);
|
|
|
|
Если ОбъектСборки.Существует() Тогда
|
|
УдалитьФайлы(КаталогСборки);
|
|
КонецЕсли;
|
|
|
|
Если ОбъектNodeМодулей.Существует() Тогда
|
|
УдалитьФайлы(ОбъектNodeМодулей);
|
|
КонецЕсли;
|
|
|
|
Если ОбъектДокументов.Существует() Тогда
|
|
УдалитьФайлы(КаталогДокументов, "*");
|
|
КонецЕсли;
|
|
|
|
ФС.КопироватьСодержимоеКаталога(КаталогMDЯзыка, КаталогДокументов);
|
|
|
|
Если Язык = "ru" Тогда
|
|
ПодготовитьКурсыДляRU(КаталогОсновной, КаталогРепозиторияКурсов);
|
|
КонецЕсли;
|
|
|
|
Попытка
|
|
|
|
CommonTools.ЗапуститьВнешнееПриложение(СтрШаблон("""%1"" install", NPM) , КаталогОсновной);
|
|
CommonTools.ЗапуститьВнешнееПриложение(СтрШаблон("""%1"" run build", NPM), КаталогОсновной);
|
|
|
|
Если Вариант = "release" Тогда
|
|
|
|
КонфигурацияRclone = ДанныеПроекта.ПолучитьЗначениеНастройки("local.rcloneConf");
|
|
КаталогХостинга = ДанныеПроекта.ПолучитьЗначениеНастройкиЛокализации("remoteDocsSrc", Язык);
|
|
|
|
ВызовДеплоя = СтрШаблон("rclone sync ""%1"" %2:%3 --progress"
|
|
, КаталогСборки
|
|
, КонфигурацияRclone
|
|
, КаталогХостинга);
|
|
|
|
CommonTools.ЗапуститьВнешнееПриложение(ВызовДеплоя);
|
|
|
|
КонецЕсли;
|
|
|
|
CommonTools.СообщитьПроцесс("Docs processing finished successfully");
|
|
|
|
Успех = Истина;
|
|
|
|
Исключение
|
|
|
|
CommonTools.СообщитьПроцесс(ОписаниеОшибки());
|
|
CommonTools.СообщитьПроцесс("Docs processing terminated");
|
|
|
|
Успех = Ложь;
|
|
|
|
КонецПопытки;
|
|
|
|
Если Вариант = "release" Тогда
|
|
CommonTools.СообщитьПроцесс("Cleaning...");
|
|
УдалитьФайлы(КаталогСборки);
|
|
УдалитьФайлы(КаталогNodeМодулей);
|
|
КонецЕсли;
|
|
|
|
Если Не Успех Тогда
|
|
ЗавершитьРаботу(1);
|
|
КонецЕсли;
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура ПодготовитьКурсыДляRU(Знач КаталогDocusaurus, Знач КаталогРепозиторияКурсов)
|
|
|
|
КаталогКурсовDocusaurus = КаталогDocusaurus + "courses";
|
|
КаталогDataDocusaurus = КаталогDocusaurus + "data";
|
|
КаталогPagesDocusaurus = КаталогDocusaurus + "src/pages";
|
|
КаталогКартинокКурсовDocusaurus = КаталогDocusaurus + "static/img/Courses";
|
|
КаталогКартинокКурсовРепозитория = КаталогРепозиторияКурсов + "/static/img/Courses";
|
|
|
|
ФС.ОбеспечитьКаталог(КаталогКурсовDocusaurus);
|
|
ФС.ОбеспечитьКаталог(КаталогDataDocusaurus);
|
|
ФС.ОбеспечитьКаталог(КаталогPagesDocusaurus);
|
|
ФС.ОбеспечитьКаталог(КаталогКартинокКурсовDocusaurus);
|
|
ФС.ОбеспечитьКаталог(КаталогКартинокКурсовРепозитория);
|
|
|
|
ОбъектКаталогКурсовDocusaurus = Новый Файл(КаталогКурсовDocusaurus);
|
|
Если ОбъектКаталогКурсовDocusaurus.Существует() Тогда
|
|
УдалитьФайлы(КаталогКурсовDocusaurus);
|
|
КонецЕсли;
|
|
|
|
ОбъектКаталогКартинокКурсовDocusaurus = Новый Файл(КаталогКартинокКурсовDocusaurus);
|
|
Если ОбъектКаталогКартинокКурсовDocusaurus.Существует() Тогда
|
|
УдалитьФайлы(КаталогКартинокКурсовDocusaurus, "*");
|
|
КонецЕсли;
|
|
|
|
ОбъектКаталогРепозиторияКурсов = Новый Файл(КаталогРепозиторияКурсов);
|
|
Если ОбъектКаталогРепозиторияКурсов.Существует() Тогда
|
|
CommonTools.СообщитьПроцесс("Updating OpenIntegrations-Courses...");
|
|
CommonTools.ЗапуститьВнешнееПриложение("git fetch --all", КаталогРепозиторияКурсов);
|
|
CommonTools.ЗапуститьВнешнееПриложение("git reset --hard origin/master", КаталогРепозиторияКурсов);
|
|
Иначе
|
|
CommonTools.СообщитьПроцесс("Cloning OpenIntegrations-Courses...");
|
|
CommonTools.ЗапуститьВнешнееПриложение("git clone https://github.com/bayselonarrend/OpenIntegrations-Courses.git");
|
|
КонецЕсли;
|
|
|
|
Приостановить(10000);
|
|
|
|
ФС.КопироватьСодержимоеКаталога(КаталогРепозиторияКурсов + "/courses", КаталогКурсовDocusaurus);
|
|
|
|
ФайлДанныхКурсов = Новый Файл(КаталогРепозиторияКурсов + "/data/courses.json");
|
|
Если ФайлДанныхКурсов.Существует() Тогда
|
|
КопироватьФайл(КаталогРепозиторияКурсов + "/data/courses.json", КаталогDataDocusaurus + "/courses.json");
|
|
КонецЕсли;
|
|
|
|
ФайлСтраницыКурсов = Новый Файл(КаталогРепозиторияКурсов + "/src/pages/courses.js");
|
|
Если ФайлСтраницыКурсов.Существует() Тогда
|
|
КопироватьФайл(КаталогРепозиторияКурсов + "/src/pages/courses.js", КаталогPagesDocusaurus + "/courses.js");
|
|
КонецЕсли;
|
|
|
|
ФайлСтилейКурсов = Новый Файл(КаталогРепозиторияКурсов + "/src/pages/courses.module.css");
|
|
Если ФайлСтилейКурсов.Существует() Тогда
|
|
КопироватьФайл(КаталогРепозиторияКурсов + "/src/pages/courses.module.css", КаталогPagesDocusaurus + "/courses.module.css");
|
|
КонецЕсли;
|
|
|
|
ФайлКаталогКартинокКурсовРепозитория = Новый Файл(КаталогКартинокКурсовРепозитория);
|
|
Если ФайлКаталогКартинокКурсовРепозитория.Существует() Тогда
|
|
ФС.КопироватьСодержимоеКаталога(КаталогКартинокКурсовРепозитория, КаталогКартинокКурсовDocusaurus);
|
|
КонецЕсли;
|
|
|
|
ОбновитьКаталогКурсаНаUUID(КаталогКурсовDocusaurus);
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура ОбновитьКаталогКурсаНаUUID(Знач КаталогКурсовDocusaurus)
|
|
|
|
СтароеИмяКаталога = "Into-OpenIntegrations";
|
|
НовыйUUID = НРег(Строка(Новый УникальныйИдентификатор()));
|
|
СтарыйКаталогКурса = КаталогКурсовDocusaurus + "/" + СтароеИмяКаталога;
|
|
НовыйКаталогКурса = КаталогКурсовDocusaurus + "/" + НовыйUUID;
|
|
|
|
ОбъектСтарыйКаталогКурса = Новый Файл(СтарыйКаталогКурса);
|
|
Если Не ОбъектСтарыйКаталогКурса.Существует() Тогда
|
|
ВызватьИсключение СтрШаблон("Source course directory not found: %1", СтарыйКаталогКурса);
|
|
КонецЕсли;
|
|
|
|
ФС.КопироватьСодержимоеКаталога(СтарыйКаталогКурса, НовыйКаталогКурса);
|
|
УдалитьФайлы(СтарыйКаталогКурса);
|
|
|
|
ПутьSidebars = КаталогКурсовDocusaurus + "/sidebars.js";
|
|
ТекстSidebars = ПолучитьСтрокуИзДвоичныхДанных(Новый ДвоичныеДанные(ПутьSidebars));
|
|
ТекстSidebars = СтрЗаменить(ТекстSidebars, СтароеИмяКаталога, НовыйUUID);
|
|
CommonTools.ЗаписатьТекст(ТекстSidebars, ПутьSidebars);
|
|
|
|
CommonTools.СообщитьПроцесс(СтрШаблон("Courses UUID generated: %1", НовыйUUID));
|
|
|
|
КонецПроцедуры |