#Использовать fs #Использовать "./internal" Процедура ПриСозданииОбъекта(Знач Вариант_ = Неопределено, Знач Язык_ = Неопределено) Если Вариант_ = Неопределено Тогда Вариант = АргументыКоманднойСтроки[0]; Иначе Вариант = Вариант_; КонецЕсли; Если Язык_ = Неопределено Тогда Язык = АргументыКоманднойСтроки[1]; Иначе Язык = Язык_; КонецЕсли; ДанныеПроекта = Новый ProjectData; Обработчик = Новый DocsPageLocalizator(ДанныеПроекта, Язык); NPM = ДанныеПроекта.ПолучитьЗначениеНастройки("local.npmPath"); КаталогОсновной = ДанныеПроекта.ПолучитьЗначениеНастройки("docs.deployMainSrc"); КаталогДокументов = ДанныеПроекта.ПолучитьЗначениеНастройки("docs.deployDocsSrc"); КаталогСборки = ДанныеПроекта.ПолучитьЗначениеНастройки("docs.deployBuildSrc"); КаталогNodeМодулей = ДанныеПроекта.ПолучитьЗначениеНастройки("docs.deployModulesSrc"); КаталогMDЯзыка = ДанныеПроекта.ПолучитьЗначениеНастройкиЛокализации("docsMdSrc", Язык); ОбъектСборки = Новый Файл(КаталогСборки); ОбъектNodeМодулей = Новый Файл(КаталогNodeМодулей); ОбъектДокументов = Новый Файл(КаталогДокументов); Если ОбъектСборки.Существует() Тогда УдалитьФайлы(КаталогСборки); КонецЕсли; Если ОбъектNodeМодулей.Существует() Тогда УдалитьФайлы(КаталогСборки); КонецЕсли; Если ОбъектДокументов.Существует() Тогда УдалитьФайлы(КаталогДокументов, "*"); КонецЕсли; ФС.КопироватьСодержимоеКаталога(КаталогMDЯзыка, КаталогДокументов); Попытка 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); КонецЕсли; КонецПроцедуры