diff --git a/.gitignore b/.gitignore index 48f0953..028963a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ .vscode tmp* +v8r_TempDB* coverage test-reports *.ospx diff --git a/README.md b/README.md index 184f7b4..26f81ac 100644 --- a/README.md +++ b/README.md @@ -22,12 +22,14 @@ - [fs](https://github.com/oscript-library/fs) - [7-zip](http://www.7-zip.org/) -**Важно:** Архиватор 7-zip должен поддерживать распаковку rar-архивов. Для этого на linux нужно поставить пакет с поддержкой такого режима. +**Важно 1:** Архиватор 7-zip должен поддерживать распаковку rar-архивов. Для этого на linux нужно поставить пакет с поддержкой такого режима. Например, на Ubuntu: ```shell apt-get install p7zip-rar p7zip-full ``` +**Важно 2:** Для ковентации в формат ЕДТ необходима установленная ЕДТ и ring + ## Общие сведения - выполняет загрузку приложений с [сайта релизов 1С](https://releases.1c.ru) @@ -38,6 +40,7 @@ apt-get install p7zip-rar p7zip-full - распаковка архива конфигурации (требуется 7-zip) - распаковка файлов шаблона конфигурации в указанный каталог (из формата EFD) - последовательная сборка CF-фалов конфигурации из CFU-файлов обновлений (требуется начальный CF) + - Конвертация в формат ЕДТ (при необходимости) - последовательная выгрузка версий конфигурации в формате XML в указанный репозитарий GIT - Реализованы 2 варианта работы: @@ -51,6 +54,10 @@ apt-get install p7zip-rar p7zip-full - _--work-dir_ - путь к рабочему каталогу (по умолчанию: текущий каталог) - _<Путь>_ - путь к файлу настроек (по умолчанию ./yardsettings.json) + Пользователя и пароль портала 1С можно передать с помощью переменных среды: + * `YARD_RELEASES_USER` - пользователь портала 1С; + * `YARD_RELEASES_PWD` - пароль пользователя портала 1С. + #### Пример: ```bat yard process --work-dir "c:\tmp" ".\examples\releases2templates.json" @@ -270,6 +277,9 @@ yard upload-all --path ".\tmp\tmplts\SSL31\" --cfname "1cv8.cf" --git-path ".\tm - **ДатаКоммита** - дата коммита в git в формате POSIX - **СообщениеКоммита** - сообщение коммита в git - **База_СтрокаСоединения** - строка подключения к служебной базе 1С для выполнения обновления (если не указана, будет использована временная ИБ) +- **Конвертировать в формат ЕДТ** - флаг конвертации в формат ЕДТ +- **Относительный путь к исходникам** - Относительный путь внутри репозитории к исходникам проекта, по умолчанию (src/cf) + ### ВыгрузкаКаталогаКонфигурацииВГит.os @@ -283,6 +293,8 @@ yard upload-all --path ".\tmp\tmplts\SSL31\" --cfname "1cv8.cf" --git-path ".\tm - **ИмяАвтора** - имя автора коммита в git (по умолчанию: 1c) - **ПочтаАвтора** - почта автора коммита в git (по умолчанию: 1c@1c.ru) - **База_СтрокаСоединения** - строка подключения к служебной базе 1С для выполнения обновления (если не указана, будет использована временная ИБ) +- **Конвертировать в формат ЕДТ** - флаг конвертации в формат ЕДТ +- **Относительный путь к исходникам** - Относительный путь внутри репозитории к исходникам проекта, по умолчанию (src/cf) ## Файл настроек (JSON) diff --git a/lib.config b/lib.config index fcd4fb3..413755b 100644 --- a/lib.config +++ b/lib.config @@ -12,6 +12,7 @@ + \ No newline at end of file diff --git a/packagedef b/packagedef index a16c1c7..8690d56 100644 --- a/packagedef +++ b/packagedef @@ -1,5 +1,5 @@ Описание.Имя("yard") - .Версия("1.4.0") + .Версия("1.5.0") .ВерсияСреды("1.4") .ЗависитОт("logos") .ЗависитОт("asserts") @@ -9,6 +9,7 @@ .ЗависитОт("gitrunner") .ЗависитОт("tempfiles") .ЗависитОт("fs") + .ЗависитОт("1commands") .РазработкаЗависитОт("1testrunner") .РазработкаЗависитОт("1bdd") .ВключитьФайл("src") diff --git a/src/lib.config b/src/lib.config index 0ec785b..f48614b 100644 --- a/src/lib.config +++ b/src/lib.config @@ -12,6 +12,7 @@ + \ No newline at end of file diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\222\321\213\320\263\321\200\321\203\320\267\320\272\320\260\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\222\320\223\320\270\321\202.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\222\321\213\320\263\321\200\321\203\320\267\320\272\320\260\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\222\320\223\320\270\321\202.os" index 33e031b..80329be 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\222\321\213\320\263\321\200\321\203\320\267\320\272\320\260\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\222\320\223\320\270\321\202.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\222\321\213\320\263\321\200\321\203\320\267\320\272\320\260\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\222\320\223\320\270\321\202.os" @@ -19,6 +19,8 @@ Перем РепозитарийГит; // Строка - путь к репозитарию git Перем ИмяАвтора; // Строка - имя автора коммита в git Перем ПочтаАвтора; // Строка - почта автора коммита в git +Перем КонвертироватьВФорматЕДТ; // Булево - конвертацировать в формат ЕДТ +Перем ОтносительныйПуть; // Строка - относительный путь к исходникам внутри репозитория Перем База_СтрокаСоединения; // Строка - строка соединения служебной базы 1С // для выполнения выгрузки @@ -105,6 +107,20 @@ Ложь, "1c@1c.ru", "почта автора коммита в git"); + + ДобавитьОписаниеПараметра(Параметры, + "КонвертироватьВФорматЕДТ", + "Булево", + Ложь, + Ложь, + "Конвертировать в формат ЕДТ"); + + ДобавитьОписаниеПараметра(Параметры, + "ОтносительныйПуть", + "Строка", + Ложь, + "", + "Относительный путь исходников внутри репозитория"); ДобавитьОписаниеПараметра(Параметры, "База_СтрокаСоединения", @@ -188,6 +204,8 @@ УстановитьПараметрОбработкиДанныхИзСтруктуры("ИмяАвтора" , ПараметрыОбработки, "1c"); УстановитьПараметрОбработкиДанныхИзСтруктуры("ПочтаАвтора" , ПараметрыОбработки, "1c@1c.ru"); УстановитьПараметрОбработкиДанныхИзСтруктуры("База_СтрокаСоединения" , ПараметрыОбработки); + УстановитьПараметрОбработкиДанныхИзСтруктуры("КонвертироватьВФорматЕДТ" , ПараметрыОбработки, Ложь); + УстановитьПараметрОбработкиДанныхИзСтруктуры("ОтносительныйПуть" , ПараметрыОбработки); КонецПроцедуры // УстановитьПараметрыОбработкиДанных() @@ -336,15 +354,17 @@ СообщениеКоммита = СтрШаблон("Обновление версии конфигурации поставщика на %1", ТекОписание.Версия); Выгрузка = Новый ВыгрузкаКонфигурацииВГит(); - Выгрузка.УстановитьПараметрОбработкиДанных("ВерсияПлатформы" , ВерсияПлатформы); + Выгрузка.УстановитьПараметрОбработкиДанных("ВерсияПлатформы" , ВерсияПлатформы); Выгрузка.УстановитьПараметрОбработкиДанных("ПутьККонфигурации", ОбъединитьПути(ТекОписание.КаталогВерсии, ИмяФайлаКонфигурации)); - Выгрузка.УстановитьПараметрОбработкиДанных("РепозитарийГит" , РепозитарийГит); - Выгрузка.УстановитьПараметрОбработкиДанных("ИмяАвтора" , ИмяАвтора); - Выгрузка.УстановитьПараметрОбработкиДанных("ПочтаАвтора" , ПочтаАвтора); - Выгрузка.УстановитьПараметрОбработкиДанных("ДатаКоммита" , ДатаКоммита); - Выгрузка.УстановитьПараметрОбработкиДанных("СообщениеКоммита" , СообщениеКоммита); - Выгрузка.УстановитьПараметрОбработкиДанных("База_СтрокаСоединения", База_СтрокаСоединения); + Выгрузка.УстановитьПараметрОбработкиДанных("РепозитарийГит" , РепозитарийГит); + Выгрузка.УстановитьПараметрОбработкиДанных("ИмяАвтора" , ИмяАвтора); + Выгрузка.УстановитьПараметрОбработкиДанных("ПочтаАвтора" , ПочтаАвтора); + Выгрузка.УстановитьПараметрОбработкиДанных("ДатаКоммита" , ДатаКоммита); + Выгрузка.УстановитьПараметрОбработкиДанных("СообщениеКоммита" , СообщениеКоммита); + Выгрузка.УстановитьПараметрОбработкиДанных("База_СтрокаСоединения" , База_СтрокаСоединения); + Выгрузка.УстановитьПараметрОбработкиДанных("КонвертироватьВФорматЕДТ", КонвертироватьВФорматЕДТ); + Выгрузка.УстановитьПараметрОбработкиДанных("ОтносительныйПуть" , ОтносительныйПуть); Выгрузка.ОбработатьДанные(); ПродолжениеОбработкиДанныхВызовМенеджера(ТекОписание); @@ -426,6 +446,13 @@ .ТСтрока() .ВОкружении("YARD_IB_CONNECTION"); + Команда.Опция("edt convert-to-edt", Ложь, "конвертировать в едт") + .Флаг(); + + Команда.Опция("srp src-relative-path", ОбъединитьПути("src", "cf"), "относительный путь исходников в репозитарии") + .ТСтрока() + .ВОкружении("YARD_GIT_SRC_PATH"); + КонецПроцедуры // ОписаниеКоманды() // Процедура - запускает выполнение команды устанавливает описание команды @@ -446,6 +473,8 @@ УстановитьПараметрОбработкиДанных("ИмяАвтора" , Команда.ЗначениеОпции("git-author")); УстановитьПараметрОбработкиДанных("ПочтаАвтора" , Команда.ЗначениеОпции("git-author-email")); УстановитьПараметрОбработкиДанных("База_СтрокаСоединения" , Команда.ЗначениеОпции("ibconnection")); + УстановитьПараметрОбработкиДанных("КонвертироватьВФорматЕДТ" , Команда.ЗначениеОпции("convert-to-edt")); + УстановитьПараметрОбработкиДанных("ОтносительныйПуть" , Команда.ЗначениеОпции("src-relative-path")); ОбработатьДанные(); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\222\321\213\320\263\321\200\321\203\320\267\320\272\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\222\320\223\320\270\321\202.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\222\321\213\320\263\321\200\321\203\320\267\320\272\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\222\320\223\320\270\321\202.os" index 63811ee..9096160 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\222\321\213\320\263\321\200\321\203\320\267\320\272\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\222\320\223\320\270\321\202.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\222\321\213\320\263\321\200\321\203\320\267\320\272\320\260\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270\320\222\320\223\320\270\321\202.os" @@ -9,6 +9,9 @@ #Использовать v8runner #Использовать gitrunner +#Использовать tempfiles +#Использовать fs +#Использовать 1commands Перем МенеджерОбработкиДанных; // ВнешняяОбработкаОбъект - обработка-менеджер, вызвавшая данный обработчик Перем Идентификатор; // Строка - идентификатор обработчика, заданный обработкой-менеджером @@ -25,7 +28,9 @@ Перем ДатаКоммита; // Строка - дата коммита в git в формате POSIX Перем СообщениеКоммита; // Строка - сообщение коммита в git Перем База_СтрокаСоединения; // Строка - строка соединения служебной базы 1С - // для выполнения выгрузки +Перем КонвертироватьВФорматЕДТ; // Булево - конвертацировать в формат ЕДТ +Перем ОтносительныйПуть; // Строка - относительный путь к исходникам внутри репозитория +// для выполнения выгрузки Перем НакопленныеДанные; // Массив(Структура) - результаты обработки данных @@ -123,14 +128,28 @@ Ложь, "", "сообщение коммита в git"); - + + ДобавитьОписаниеПараметра(Параметры, "База_СтрокаСоединения", "Строка", Ложь, "", "строка соединения служебной базы 1С для выполнения выгрузки"); - + + ДобавитьОписаниеПараметра(Параметры, + "КонвертироватьВФорматЕДТ", + "Булево", + Ложь, + Ложь, + "Конвертировать в формат ЕДТ"); + + ДобавитьОписаниеПараметра(Параметры, + "ОтносительныйПуть", + "Строка", + Ложь, + "", + "Относительный путь исходников внутри репозитория"); Возврат Параметры; КонецФункции // ОписаниеПараметров() @@ -199,16 +218,18 @@ ПараметрыОбработки = НовыеПараметры; - УстановитьПараметрОбработкиДанныхИзСтруктуры("ВерсияПлатформы" , ПараметрыОбработки, "8.3"); - УстановитьПараметрОбработкиДанныхИзСтруктуры("ПутьККонфигурации" , ПараметрыОбработки); - УстановитьПараметрОбработкиДанныхИзСтруктуры("РепозитарийГит" , ПараметрыОбработки); - УстановитьПараметрОбработкиДанныхИзСтруктуры("ИмяВеткиГит" , ПараметрыОбработки, "base1c"); - УстановитьПараметрОбработкиДанныхИзСтруктуры("ИмяАвтора" , ПараметрыОбработки, "1c"); - УстановитьПараметрОбработкиДанныхИзСтруктуры("ПочтаАвтора" , ПараметрыОбработки, "1c@1c.ru"); - УстановитьПараметрОбработкиДанныхИзСтруктуры("ДатаКоммита" , ПараметрыОбработки, + УстановитьПараметрОбработкиДанныхИзСтруктуры("ВерсияПлатформы" , ПараметрыОбработки, "8.3"); + УстановитьПараметрОбработкиДанныхИзСтруктуры("ПутьККонфигурации" , ПараметрыОбработки); + УстановитьПараметрОбработкиДанныхИзСтруктуры("РепозитарийГит" , ПараметрыОбработки); + УстановитьПараметрОбработкиДанныхИзСтруктуры("ИмяВеткиГит" , ПараметрыОбработки, "base1c"); + УстановитьПараметрОбработкиДанныхИзСтруктуры("ИмяАвтора" , ПараметрыОбработки, "1c"); + УстановитьПараметрОбработкиДанныхИзСтруктуры("ПочтаАвтора" , ПараметрыОбработки, "1c@1c.ru"); + УстановитьПараметрОбработкиДанныхИзСтруктуры("ДатаКоммита" , ПараметрыОбработки, Служебный.ДатаPOSIX(ТекущаяУниверсальнаяДата())); - УстановитьПараметрОбработкиДанныхИзСтруктуры("СообщениеКоммита" , ПараметрыОбработки); - УстановитьПараметрОбработкиДанныхИзСтруктуры("База_СтрокаСоединения", ПараметрыОбработки); + УстановитьПараметрОбработкиДанныхИзСтруктуры("СообщениеКоммита" , ПараметрыОбработки); + УстановитьПараметрОбработкиДанныхИзСтруктуры("База_СтрокаСоединения" , ПараметрыОбработки); + УстановитьПараметрОбработкиДанныхИзСтруктуры("КонвертироватьВФорматЕДТ" , ПараметрыОбработки, Ложь); + УстановитьПараметрОбработкиДанныхИзСтруктуры("ОтносительныйПуть" , ПараметрыОбработки); КонецПроцедуры // УстановитьПараметрыОбработкиДанных() @@ -282,12 +303,18 @@ ГитРепозиторий.УстановитьРабочийКаталог(РепозитарийГит); СлужебныйКаталогГит = Новый Файл(ОбъединитьПути(РепозитарийГит, ".git")); - + МаскаПоискаФайлов = ?(Не КонвертироватьВФорматЕДТ, "*", "src|DT-INF"); + МенеджерВР = Новый МенеджерВременныхФайлов(); + Если НЕ СлужебныйКаталогГит.Существует() Тогда ГитРепозиторий.Инициализировать(); КонецЕсли; - КаталогВыгрузки = ОбъединитьПути(РепозитарийГит, "src", "cf"); + Если Не ЗначениеЗаполнено(ОтносительныйПуть) Тогда + КаталогВыгрузки = ОбъединитьПути(РепозитарийГит, "src", "cf"); + Иначе + КаталогВыгрузки = ОбъединитьПути(РепозитарийГит, ОтносительныйПуть); + КонецЕсли; ВремФайл = Новый Файл(КаталогВыгрузки); Если ВремФайл.Существует() Тогда @@ -303,7 +330,9 @@ Формат(ОписаниеВерсии.Дата, "ДФ=dd.MM.yyyy; ДП=-"), ОписаниеВерсии.Имя, КаталогВыгрузки); - УдалитьФайлы(КаталогВыгрузки); + Для каждого Маска Из СтрРазделить(МаскаПоискаФайлов, "|") Цикл + УдалитьФайлы(КаталогВыгрузки, Маска); + КонецЦикла; КонецЕсли; Распаковщик.ОбеспечитьКаталог(КаталогВыгрузки); @@ -328,25 +357,34 @@ Конфигуратор.ЗагрузитьКонфигурациюИзФайла(ПутьККонфигурации); - Лог.Информация("[%1]: Начало выгрузки в файлы версии %2 (%3) конфигурации ""%4"" в репозитарий ""%5""", + КаталогВыгрузкиИсходников = ?(КонвертироватьВФорматЕДТ, МенеджерВР.СоздатьКаталог("config-src"), КаталогВыгрузки); + ШаблонТекстаВыгрузки = ?( + КонвертироватьВФорматЕДТ, + "[%1]: Начало выгрузки в файлы версии %2 (%3) конфигурации ""%4"" во временный каталог ""%5""", + "[%1]: Начало выгрузки в файлы версии %2 (%3) конфигурации ""%4"" в репозитарий ""%5""" + ); + Лог.Информация(ШаблонТекстаВыгрузки, ТипЗнч(ЭтотОбъект), ОписаниеВерсии.Версия, Формат(ОписаниеВерсии.Дата, "ДФ=dd.MM.yyyy; ДП=-"), ОписаниеВерсии.Имя, - КаталогВыгрузки); - - Конфигуратор.ВыгрузитьКонфигурациюВФайлы(КаталогВыгрузки); + КаталогВыгрузкиИсходников); + Конфигуратор.ВыгрузитьКонфигурациюВФайлы(КаталогВыгрузкиИсходников); Если ФайлОписания.Существует() Тогда НовыйФайлОписания = ОбъединитьПути(РепозитарийГит, "description.json"); КопироватьФайл(ФайлОписания.ПолноеИмя, НовыйФайлОписания); КонецЕсли; - ФайлДампа = Новый Файл(ОбъединитьПути(КаталогВыгрузки, "ConfigDumpInfo.xml")); + ФайлДампа = Новый Файл(ОбъединитьПути(КаталогВыгрузкиИсходников, "ConfigDumpInfo.xml")); Если ФайлДампа.Существует() Тогда УдалитьФайлы(ФайлДампа.ПолноеИмя); КонецЕсли; + Если КонвертироватьВФорматЕДТ Тогда + СконвертироватьВФорматЕДТ(КаталогВыгрузкиИсходников, КаталогВыгрузки); + КонецЕсли; + Лог.Информация("[%1]: Начало добавления изменений в индекс Git", ТипЗнч(ЭтотОбъект)); ГитРепозиторий.ДобавитьФайлВИндекс("."); @@ -360,6 +398,8 @@ Лог.Информация("[%1]: Помещение изменений в Git завершено", ТипЗнч(ЭтотОбъект)); + МенеджерВР.Удалить(); + ПродолжениеОбработкиДанныхВызовМенеджера(КаталогВыгрузки); ЗавершениеОбработкиДанныхВызовМенеджера(); @@ -437,11 +477,19 @@ Команда.Опция("m git-commit-message", "", "сообщение коммита в git") .ТСтрока() .ВОкружении("YARD_GIT_COMMIT_MESSAGE"); - + + Команда.Опция("C ibconnection", "", "строка подключения к служебной базе 1С для выполнения обновления") .ТСтрока() .ВОкружении("YARD_IB_CONNECTION"); + Команда.Опция("edt convert-to-edt", Ложь, "конвертировать в едт") + .Флаг(); + + Команда.Опция("srp src-relative-path", ОбъединитьПути("src", "cf"), "относительный путь исходников в репозитарии") + .ТСтрока() + .ВОкружении("YARD_GIT_SRC_PATH"); + КонецПроцедуры // ОписаниеКоманды() // Процедура - запускает выполнение команды устанавливает описание команды @@ -455,15 +503,17 @@ ПараметрыПриложения.УстановитьРежимОтладки(ВыводОтладочнойИнформации); - УстановитьПараметрОбработкиДанных("ВерсияПлатформы" , Команда.ЗначениеОпции("v8version")); - УстановитьПараметрОбработкиДанных("ПутьККонфигурации" , Команда.ЗначениеОпции("cf-path")); - УстановитьПараметрОбработкиДанных("РепозитарийГит" , Команда.ЗначениеОпции("git-path")); - УстановитьПараметрОбработкиДанных("ИмяВеткиГит" , Команда.ЗначениеОпции("git-branch")); - УстановитьПараметрОбработкиДанных("ИмяАвтора" , Команда.ЗначениеОпции("git-author")); - УстановитьПараметрОбработкиДанных("ПочтаАвтора" , Команда.ЗначениеОпции("git-author-email")); - УстановитьПараметрОбработкиДанных("ДатаКоммита" , Команда.ЗначениеОпции("git-commit-date")); - УстановитьПараметрОбработкиДанных("СообщениеКоммита" , Команда.ЗначениеОпции("git-commit-message")); - УстановитьПараметрОбработкиДанных("База_СтрокаСоединения", Команда.ЗначениеОпции("ibconnection")); + УстановитьПараметрОбработкиДанных("ВерсияПлатформы" , Команда.ЗначениеОпции("v8version")); + УстановитьПараметрОбработкиДанных("ПутьККонфигурации" , Команда.ЗначениеОпции("cf-path")); + УстановитьПараметрОбработкиДанных("РепозитарийГит" , Команда.ЗначениеОпции("git-path")); + УстановитьПараметрОбработкиДанных("ИмяВеткиГит" , Команда.ЗначениеОпции("git-branch")); + УстановитьПараметрОбработкиДанных("ИмяАвтора" , Команда.ЗначениеОпции("git-author")); + УстановитьПараметрОбработкиДанных("ПочтаАвтора" , Команда.ЗначениеОпции("git-author-email")); + УстановитьПараметрОбработкиДанных("ДатаКоммита" , Команда.ЗначениеОпции("git-commit-date")); + УстановитьПараметрОбработкиДанных("СообщениеКоммита" , Команда.ЗначениеОпции("git-commit-message")); + УстановитьПараметрОбработкиДанных("База_СтрокаСоединения" , Команда.ЗначениеОпции("ibconnection")); + УстановитьПараметрОбработкиДанных("КонвертироватьВФорматЕДТ", Команда.ЗначениеОпции("convert-to-edt")); + УстановитьПараметрОбработкиДанных("ОтносительныйПуть" , Команда.ЗначениеОпции("src-relative-path")); ОбработатьДанные(); @@ -583,6 +633,53 @@ КонецФункции // ЕстьПеременнаяМодуля() +// Процедура - Конвертирует исходники конфигурации из формата конфигуратора в формат ЕДТ +// +// Параметры: +// КаталогВФорматеКонфигуратора - Строка - каталог исходников конфигурации в формате конфигуратора +// КаталогВФорматеЕДТ - Строка - каталог куда будут помещены конвертированные исходники в формате ЕДТ +// +Процедура СконвертироватьВФорматЕДТ(КаталогВФорматеКонфигуратора, КаталогВФорматеЕДТ) + Лог.Информация("[%1]: Начало конвертации в формат ЕДТ", ТипЗнч(ЭтотОбъект)); + МенеджерВР = Новый МенеджерВременныхФайлов(); + ВоркСпейсЕДТ = МенеджерВР.СоздатьКаталог("edt-ws"); + Команда = Новый Команда(); + ПараметрыЕНВ = Новый Соответствие(); + ПараметрыЕНВ.Вставить("RING_OPTS", "-Dfile.encoding=UTF-8 -Dosgi.nl=ru -Duser.language=ru"); + Команда.УстановитьПеременныеСреды(ПараметрыЕНВ); + Команда.УстановитьКоманду("ring"); + Команда.УстановитьКодировкуВывода(КодировкаТекста.UTF8); + ПараметрыЗапускаЕДТ = Новый Массив(); + ПараметрыЗапускаЕДТ.Добавить("edt workspace import"); + ПараметрыЗапускаЕДТ.Добавить("--configuration-files"); + ПараметрыЗапускаЕДТ.Добавить(КаталогВФорматеКонфигуратора); + ПараметрыЗапускаЕДТ.Добавить("--project-name tmp"); + ПараметрыЗапускаЕДТ.Добавить("--workspace-location"); + ПараметрыЗапускаЕДТ.Добавить(ВоркСпейсЕДТ); + + Команда.ДобавитьПараметры(ПараметрыЗапускаЕДТ); + + КодВозврата = Команда.Исполнить(); + + Если КодВозврата <> 0 Тогда + ВызватьИсключение Команда.ПолучитьВывод(); + КонецЕсли; + + МаскаПоискаФайлов = "src|DT-INF"; + Для Каждого Маска Из СтрРазделить(МаскаПоискаФайлов, "|") Цикл + ФайлыКПеремещению = НайтиФайлы(ОбъединитьПути(ВоркСпейсЕДТ, "tmp"), Маска); + Для каждого Файл Из ФайлыКПеремещению Цикл + + ФС.КопироватьСодержимоеКаталога(Файл.ПолноеИмя, ОбъединитьПути(КаталогВФорматеЕДТ, Файл.Имя)); + + КонецЦикла; + КонецЦикла; + + МенеджерВР.Удалить(); + + Лог.Информация("[%1]: Завершена конвертация в формат ЕДТ", ТипЗнч(ЭтотОбъект)); +КонецПроцедуры + #КонецОбласти // СлужебныеПроцедурыИФункции #Область ОбработчикиСобытий diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" index c9fbad4..1b35de0 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" @@ -420,7 +420,7 @@ ФильтрВерсий, ФильтрВерсийНачинаяСДаты, ФильтрВерсийДоДаты); - + Если ПолучатьБетаВерсии Тогда Для Каждого ТекБетаВерсия Из ТекЭлемент.БетаВерсии Цикл ВерсииПриложения.Добавить(ТекБетаВерсия); @@ -625,7 +625,11 @@ Обозреватель = Новый ОбозревательСайта1С(ИмяПользователя, ПарольПользователя); - Данные = Обозреватель.ПолучитьСписокПриложений(ФильтрПриложений); + Данные = Обозреватель.ПолучитьСписокПриложений(ФильтрПриложений, + ФильтрВерсий, + ФильтрВерсийНачинаяСДаты, + ФильтрВерсийДоДаты, + ПолучатьБетаВерсии); ОбработатьДанные(Обозреватель); @@ -721,6 +725,8 @@ ЗначениеПараметра = СтруктураПараметров[ИмяПараметра]; КонецЕсли; + ПараметрыОбработчиков.ОбработатьПараметрыАвторизации(ИмяПараметра, ЗначениеПараметра); + Выполнить(СтрШаблон("%1 = ЗначениеПараметра;", ИмяПараметра)); КонецПроцедуры // УстановитьПараметрОбработкиДанныхИзСтруктуры() diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\277\320\270\321\201\320\276\320\272\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\277\320\270\321\201\320\276\320\272\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" index 980edf5..f6c7bb5 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\277\320\270\321\201\320\276\320\272\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\277\320\270\321\201\320\276\320\272\320\240\320\265\320\273\320\270\320\267\320\276\320\2621\320\241.os" @@ -331,7 +331,7 @@ ПродолжениеОбработкиДанныхВызовМенеджера(ТекЭлемент); КонецЦикла; - ЗавершениеОбработкиДанныхВызовМенеджера(); + ЗавершениеОбработкиДанных(); КонецПроцедуры // ОбработатьДанные() @@ -351,6 +351,12 @@ // Процедура ЗавершениеОбработкиДанных() Экспорт + Если ЗначениеЗаполнено(ПутьКФайлуДляСохранения) Тогда + СохранитьОписанияВФайл(); + Иначе + ВывестиПриложенияСВерсиями(); + КонецЕсли; + Лог.Информация("[%1]: Завершение обработки данных.", ТипЗнч(ЭтотОбъект)); ЗавершениеОбработкиДанныхВызовМенеджера(); @@ -433,10 +439,6 @@ ОбработатьДанные(); - ВывестиПриложенияСВерсиями(); - - СохранитьОписанияВФайл(); - КонецПроцедуры // ВыполнитьКоманду() #КонецОбласти // СлужебныйПрограммныйИнтерфейс @@ -529,6 +531,8 @@ ЗначениеПараметра = СтруктураПараметров[ИмяПараметра]; КонецЕсли; + ПараметрыОбработчиков.ОбработатьПараметрыАвторизации(ИмяПараметра, ЗначениеПараметра); + Выполнить(СтрШаблон("%1 = ЗначениеПараметра;", ИмяПараметра)); КонецПроцедуры // УстановитьПараметрОбработкиДанныхИзСтруктуры() diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\276\320\262.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\276\320\262.os" new file mode 100644 index 0000000..e6d4749 --- /dev/null +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\276\320\262.os" @@ -0,0 +1,33 @@ +#Область ПрограммныйИнтерфейс + +// Заполнить параметры авторизации из переменных среды +// +// Параметры: +// ИмяПараметра - Строка - имя параметра. Например, "ИмяПользователя". +// ЗначениеПараметра - ЛюбоеЗначение - значение параметра. +// +Процедура ОбработатьПараметрыАвторизации(ИмяПараметра, ЗначениеПараметра) Экспорт + + Если СтрСравнить(ИмяПараметра, "ИмяПользователя") = 0 Тогда + УстановитьЗначениеПараметраИзПеременнойСреды(ЗначениеПараметра, "YARD_RELEASES_USER"); + КонецЕсли; + Если СтрСравнить(ИмяПараметра, "ПарольПользователя") = 0 Тогда + УстановитьЗначениеПараметраИзПеременнойСреды(ЗначениеПараметра, "YARD_RELEASES_PWD"); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура УстановитьЗначениеПараметраИзПеременнойСреды(ЗначениеПараметра, Знач ИмяПеременнойСреды) + + ЗначениеПеременнойСреды = ПолучитьПеременнуюСреды(ИмяПеременнойСреды); + Если ЗначениеЗаполнено(ЗначениеПеременнойСреды) Тогда + ЗначениеПараметра = ЗначениеПеременнойСреды; + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" index a2df6af..6881f81 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" @@ -162,7 +162,7 @@ // Функция Версия() Экспорт - Возврат "1.4.0"; + Возврат "1.5.0"; КонецФункции // Версия()