diff --git a/.gitignore b/.gitignore index 8dfbd8e1f..7c66f89f9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -*.class +*.class src/scripts/*.txt src/cf/ConfigDumpInfo.xml @@ -13,3 +13,4 @@ src/cf/ConfigDumpInfo.xml # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* +src/scripts/CF dev/params.json diff --git a/src/scripts/CF dev/public-dev.os b/src/scripts/CF dev/public-dev.os new file mode 100644 index 000000000..4d12fcbf2 --- /dev/null +++ b/src/scripts/CF dev/public-dev.os @@ -0,0 +1,106 @@ +#Использовать v8runner +#Использовать yadisk +#Использовать 1connector +#Использовать configor +#Использовать logos + +Лог = Логирование.ПолучитьЛог("oscript.app.public-dev"); +Лог.УстановитьУровень(УровниЛога.Информация); + +ФайлНастроек = ОбъединитьПути(ТекущийКаталог(), "params.json"); +Если АргументыКоманднойСтроки.Количество() <> 0 Тогда + ФайлНастроек = АргументыКоманднойСтроки[0]; +КонецЕсли; + +МенеджерПараметров = Новый МенеджерПараметров(); +МенеджерПараметров.АвтоНастройка("config"); +МенеджерПараметров.УстановитьФайлПараметров(ФайлНастроек); +МенеджерПараметров.Прочитать(); + +Если Не МенеджерПараметров.ЧтениеВыполнено() Тогда + Лог.Ошибка("Не удалось прочитать настройки."); + ЗавершитьРаботу(1); +КонецЕсли; + +Конфигуратор = Новый УправлениеКонфигуратором(); + +ВерсияПлатформы = МенеджерПараметров.Параметр("Конфигурация.Версия"); +Лог.Отладка("Версия платформы: " + ВерсияПлатформы); + +Если ЗначениеЗаполнено(ВерсияПлатформы) Тогда + Конфигуратор.ИспользоватьВерсиюПлатформы(ВерсияПлатформы); +КонецЕсли; + +// Выгрузка конфигурации в файл. + +КаталогИсходниковКонфигурации = МенеджерПараметров.Параметр("Конфигурация.КаталогПроекта"); +КаталогИсходниковКонфигурации = ОбъединитьПути(КаталогИсходниковКонфигурации, "src", "cf"); +Лог.Отладка("Каталог исходников: " + КаталогИсходниковКонфигурации); + +Лог.Информация("Загрузка конфигурации из файлов"); +Конфигуратор.ЗагрузитьКонфигурациюИзФайлов(КаталогИсходниковКонфигурации, , , Ложь); + +ИмяФайлаКонфигурации = СтрШаблон("dev_Tasks%1.cf", Формат(ТекущаяДата(), "ДФ=ddMMyy_HHmm")); +Лог.Отладка("Имя файла конфигурации: " + ИмяФайлаКонфигурации); + +Лог.Информация("Выгрузка конфигурации в файл"); +ПутьКФайлуКонфигурации = ОбъединитьПути(Конфигуратор.ПутьКВременнойБазе(), ИмяФайлаКонфигурации); +Конфигуратор.ВыгрузитьКонфигурациюВФайл(ПутьКФайлуКонфигурации); + +// Публикация файла на Яндекс.Диске. + +ТокенАвторизации = МенеджерПараметров.Параметр("Яндекс.Токен"); +КаталогНаЯндексДиске = МенеджерПараметров.Параметр("Яндекс.Каталог"); + +ЯндексДиск = Новый ЯндексДиск; +ЯндексДиск.УстановитьТокенАвторизации(ТокенАвторизации); + +ПутьНаЯндексДиске = ИмяФайлаКонфигурации; +Если Не ПустаяСтрока(КаталогНаЯндексДиске) Тогда + ПутьНаЯндексДиске = КаталогНаЯндексДиске + "/" + ПутьНаЯндексДиске; +КонецЕсли; +Лог.Отладка("Путь на Я.Диске: " + ПутьНаЯндексДиске); + +Лог.Информация("Загрузка файла на Я.Диск"); +ЯндексДиск.ЗагрузитьНаДиск(ПутьКФайлуКонфигурации, ПутьНаЯндексДиске, Истина); + +Лог.Информация("Публикация файла на Я.Диске"); +СсылкаНаЯндексДиске = ЯндексДиск.Опубликовать(ПутьНаЯндексДиске); + +// Отправка комментария на GitHub. + +ТокенАвторизации = МенеджерПараметров.Параметр("GitHub.Токен"); +ПолноеИмяРепозитория = МенеджерПараметров.Параметр("GitHub.Репозиторий"); +НомерЗадачи = МенеджерПараметров.Параметр("GitHub.НомерЗадачи"); + +UrlЗапроса = "https://api.github.com/repos/%1/issues/%2/comments"; +UrlЗапроса = СтрШаблон(UrlЗапроса, ПолноеИмяРепозитория, НомерЗадачи); +Лог.Отладка("URL запроса: " + UrlЗапроса); + +ЗаголовкиЗапроса = Новый Соответствие; +ЗаголовкиЗапроса.Вставить("Accept", "application/vnd.github.v3+json"); +ЗаголовкиЗапроса.Вставить("User-Agent", "oscript-tasks"); +ЗаголовкиЗапроса.Вставить("Authorization", СтрШаблон("token %1", ТокенАвторизации)); + +ПараметрыЗапроса = Новый Структура(); +ПараметрыЗапроса.Вставить("Заголовки", ЗаголовкиЗапроса); + +ТекстКомментария = СтрШаблон("[%1](%2)", ИмяФайлаКонфигурации, СсылкаНаЯндексДиске); +Лог.Отладка("Текст комментария: " + ТекстКомментария); + +Тело = Новый Структура; +Тело.Вставить("body", ТекстКомментария); + +Лог.Информация("Пост комментария на GitHub"); +Ответ = КоннекторHTTP.Post(UrlЗапроса, , Тело, ПараметрыЗапроса); + +Лог.Отладка("Код ответа: " + Ответ.КодСостояния); +Если Ответ.КодСостояния <> 201 Тогда + Лог.Ошибка(Ответ.Текст()); + ЗавершитьРаботу(1); +КонецЕсли; + +// Удаление временных файлов + +Лог.Отладка("Удаление временной базы"); +Конфигуратор.УдалитьВременнуюБазу();